我到处搜索,并没有真正找到一个明确的答案,什么时候你想使用. first,什么时候你想使用. firstordefault与LINQ。
什么时候你想用。first ?只有当你想捕捉异常,如果没有结果返回哪里?
var result =列表。Where(x => x == "foo").First();
什么时候使用。firstordefault ?当你总是想默认类型,如果没有结果?
var result =列表。Where(x => x == "foo").FirstOrDefault();
说到这,那塔克呢?
var result =列表。Where(x => x == "foo").Take(1);
这种类型的函数属于元素操作符。下面定义了一些有用的元素操作符。
第一/ FirstOrDefault
去年/ LastOrDefault
单/ SingleOrDefault
当需要根据特定条件从序列中选择单个元素时,我们使用元素操作符。这里有一个例子。
List<int> items = new List<int>() { 8, 5, 2, 4, 2, 6, 9, 2, 10 };
First()操作符返回序列满足条件后的第一个元素。如果没有找到元素,则抛出异常。
Int result = items。Where(item => item == 2).First();
FirstOrDefault()操作符返回满足条件后序列的第一个元素。如果没有找到元素,则返回该类型的默认值。
Int result1 = items。Where(item => item == 2).FirstOrDefault();