Linq警告

mez*_*oid 6 .net linq

Linq是.NET的一个很棒的补充,我发现它在很多情况下都很好用,即使我刚开始学习如何使用Linq.

然而,在我对Linq所做的阅读中,我发现开发人员需要注意一些微妙的事情,这可能会导致麻烦.

我已经提到了一个明确的警告,我发现这是延迟执行的结果.

所以我想知道,对于Linq来说,Linq的新手应该知道哪些其他注意事项?

mez*_*oid 5

在foreach循环中构建查询

IEnumerable<char> query = "Not what you might expect";
foreach(char vowel in "aeiou")
{
    query = query.Where(c => c != vowel);
}
Run Code Online (Sandbox Code Playgroud)

由于延迟执行,上面的代码仅从字符串中删除"u".

要删除所有元音,您需要执行以下操作:

IEnumerable<char> query = "Not what you might expect";
foreach(char vowel in "aeiou")
{
    char temp = vowel;
    query = query.Where(c => c != temp);
}
Run Code Online (Sandbox Code Playgroud)