> linq运算符:.first,.firstordefault和.take - 比较指南
>有效的LINQ查询取决于选择正确的操作员。 本指南阐明了.First
>,.FirstOrDefault
和.Take
之间的区别,可帮助您为需要选择最佳操作员。
理解.First
>使用.First
>当您确信您的序列至少包含一个匹配您的条件的元素。 如果找不到匹配,则会引发异常。这对于空无结果出乎意料并且需要明确的错误处理的情况是理想的选择:.First
>
<code class="language-csharp">var result = List.Where(x => x == "foo").First(); // Throws exception if "foo" is not found</code>
利用.FirstOrDefault
>
当处理可能是空的序列时,请使用
,对于数字类型为0),如果找不到匹配。这会防止异常,并提供了处理空序列的优美方法:.FirstOrDefault
null
<code class="language-csharp">var result = List.Where(x => x == "foo").FirstOrDefault(); // Returns null if "foo" is not found</code>
vs..Take(1)
.First
和.Take(1)
之间的密钥差在于其返回类型。 .First
返回一个包含一个元素的序列,而.Take(1)
返回元素本身。 当您需要在序列上下文中对元素执行其他操作时,.First
>是有益的:.Take(1)
以上是LINQ 的 .First、.FirstOrDefault 和 .Take:何时使用每个运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!