- 我有一个“人”的列表
- 每个人都有一个“类别”列表
- 类别有两个属性:日期和值
我想选择一个人员列表,其中最后一个类别等于“B”。但我不知道如何用 Linq 语法编写“where 子句”。
我的“人”结构是:
<person>
<id>200</id>
<name>Peter</name>
<age>25</age>
<categories>
<category>
<date>2012-05-01<date>
<value>A</value>
</category>
<category>
<date>2013-01-01<date>
<value>B</value>
</category>
<category>
<date>2013-02-01<date>
<value>C</value>
</category>
</categories>
</person>
最佳答案
您可以使用以下内容:
List<Person> allPersons = GetListOfPersons();
List<Person> selectedPersons = allPersons
.Where((x) => x.Categories
.OrderBy(y => y.Date)
.Last()
.Value == "B")
.ToList();
或查询样式
List<Person> selectedPersons = (from person in allPersons
where person.Categories.OrderBy(x => x.Date).Last().Value == "B"
select person).ToList();
关于c# - Linq - 如何在列表的最大元素上应用 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15165503/