我有一个带有问题编号的项目列表
ID Issue
apple 1
orange 1
apple 2
apple 3
orange 2
我想创建两个列表,一个是“当前”项目,哪个是具有最高发行号的项目,另一个列表是所有其他列表减去当前项目(称之为归档)
如果我的列表将有大约1000个条目(相当小)
,那么这是最好的方法答案 0 :(得分:4)
这可能会有所帮助
var currentIssue = list.Max(x => x.Issue);
var currentItems = list.Where(x => x.Issue == currentIssue).ToList();
var archiveItems = list.Where(x => x.Issue != currentIssue).ToList();
答案 1 :(得分:2)
如果您需要找到每个“ID”的最高“问题”:
var maxList = yourList.GroupBy(x => x.Name)
.Select(x => x.Where(y => y.Id == x.Max(z => z.Id)))
.SelectMany(x => x);
var theRest = yourList.Except(maxList);
这将在第一个列表中返回“Orange / 2”和“Apple / 3”,在第二个列表中返回其他三个记录。