c# - Linq 查询 - 整理/优化

标签 c# linq list

我正在使用以下代码行:

ListOfMyClass.OrderByDescending(x => x.DateCreated)
             .Where(x => !x.Deleted).First();

我明白了

"Replace with single call to first warning"

我更愿意做,但不知道怎么做。

我希望能够说出具有最新创建日期且标记为未删除的项目。

哪里是学习这类查询的最佳地点,解决这个问题的最佳方法是什么,因为我更喜欢成为一名整洁的编码员。

最佳答案

你可以在没有where的情况下调用它:

ListOfMyClass.OrderByDescending(x => x.DateCreated).First(x => !x.Deleted);

First 也接受谓词。在这种情况下,你写 WhereFirst 还是只写 First 都没有关系,它被评估为同一个查询:) 但是 First 看起来更干净。

正如 Jeroen van Langen 所说,WhereFirst 稍快。所以我认为使用 Where.OrderByDescending.First 是迄今为止最好的解决方案。

关于c# - Linq 查询 - 整理/优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19111961/

相关文章:

c# - 在 Armstrong 中为 List 或 Array 赋值时遇到问题 No

c# - DateTime 到 Datetime2

c# - LINQ 中 select new T() 和 select new T 有区别吗

c# - 用其总和替换集合中的重复值

python - 有没有办法将列表中变量的更改反射(reflect)在列表中?

vb.net - 从 List(Of T) 中删除重复项

c# - 无法从字符串转换为 int?

c# - CreateCompatibleDC(IntPtr.Zero) 返回 IntPtr.Zero

c# - List.Cast<> 错误 "is a method which is not valid in the given context"

python - 为什么我的生成器函数总是返回相同的值?