当列表有 1 个元素时,是否有任何 LINQ 函数只返回 1 个元素,如果列表为空或有超过 1 个元素,则返回 null?当列表有超过 1 个元素时,SingleOrDefault 会引发异常...
这个方法你可以自己写
var list = new List<object>();
var result = list.Count() == 1 ? list.FirstOrDefault() : null;
Run Code Online (Sandbox Code Playgroud)
更高效的选项,仅采用集合中的前两个元素(如评论中提到的@canton7)
var result = list.Take(2).Count() == 1 ? list.FirstOrDefault() : null;
Run Code Online (Sandbox Code Playgroud)
另外,Single可以使用 代替FirstOrDefault,但两种方法的作用相同,将源序列转换为IList并获取第一个元素。
由于每个问题的源集合是List<T>,因此使用List<T>索引器和Count属性是有意义的
var result = list.Count == 1 ? list[0] : null;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |