Lambda表达式,以带条件搜索并仅返回1个最新结果
本文关键字:返回 1个 最新 结果 搜索 表达式 条件 Lambda | 更新日期: 2023-09-27 18:01:00
我有一个包含Supplier
数据的列表,我想使用SupplierID
、非活动供应商和只有1个最新结果来搜索它。
所以我有:
List<Supplier> filteredList = this.toList();
filteredList.OrderByDescending(m => m.ModifiedDatetime).FirstOrDefault();
filteredList.Where(f => (f.Active == false && f.FieldId == SupplierFieldID))
.ToList<Supplier>();
但我做不到;请帮忙。
您需要链接您的LINQ表达式,如下所示:
var filteredList = unfilteredData
.Where(f => f.Active == false && f.FieldId == SupplierFieldID)
.OrderByDescending(m => m.ModifiedDatetime)
.FirstOrDefault();
您不需要ToList()
,因为您需要的是单个项目,而不是列表;这就是CCD_ 4所做的。如果您需要最后一件商品,您需要按照原始订购条件的相反顺序订购。例如,如果您想要最新修改日期的条目,则需要按降序排序(就像您所做的那样(。
您可以在一条语句中完成此操作,将LINQ运算符链接在一起:
var filteredList = myList.Where(f => f.Active == false && f.FieldId == SupplierFieldID)
.OrderByDescending(m => m.ModifiedDatetime)
.Take(1);
或者正如@Preston Guillot所建议的,更短的形式:
var filteredList = unfilteredData
.OrderByDescending(m => m.ModifiedDatetime)
.FirstOrDefault(f => f.Active == false && f.FieldId == SupplierFieldID);