Linq 中的NULL判断

1 篇文章 0 订阅
this.dgEntBody.ItemsSource.Cast<VPCreateKaRel>().Where(p => !string.IsNullOrEmpty(p.BillNo) && p.BillNo.Substring(0,11) == stock.MawbNo).Count() > 0
LINQ(Language Integrated Query,语言集成查询),如果你想要检查集合是否只包含一个元素而不仅仅是是否存在,可以使用`Single()`、`SingleOrDefault()`或者`FirstOrDefault()`方法。以下是它们的简单说明: 1. `Single()`: 如果集合恰好有一个元素,并且该元素唯一(没有重复),则返回这个元素;如果集合为空或者不止一个元素,则会抛出`InvalidOperationException`异常。 ```csharp var result = myCollection.Single(); ``` 2. `SingleOrDefault()`: 类似于`Single()`,但如果集合有多个元素,它会返回第一个非空元素(如果有默认值,可能会返回默认值)。如果集合为空,它将返回默认值或`null`。 ```csharp var result = myCollection.SingleOrDefault(); ``` 3. `FirstOrDefault()`: 如果集合至少有一个元素,无论是否唯一,都会返回第一个元素;如果集合为空,它会返回默认值或`null`。 ```csharp var result = myCollection.FirstOrDefault(); ``` 为了判断只存在一个元素而不引发异常,可以先使用`Any()`检查集合是否非空,然后使用上述方法之一尝试获取单个元素。如果成功获取,说明只有一个元素;如果失败,说明可能存在多个元素或集合为空。 ```csharp if (myCollection.Any() && myCollection.Count() == 1) { var singleElement = myCollection.Single(); // 或者使用其他方法 // do something with the element } else { Console.WriteLine("集合不是单元素"); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值