这是场景:
给定一个输出列表,每个输出都与一个基于整数的 GroupNumber 相关联。对于从最低 GroupNumber (1) 开始的输出列表中的每个不同 GroupNumber。循环通过该不同的组号集并执行验证方法。
基本上,从最低组号到最高组号开始,首先验证一组输出,然后再验证更高的组号集。
谢谢,马特
解决这个问题的方法几乎太多了:
这是一个 void Validate 方法。
source
.GroupBy(x => x.GroupNumber)
.OrderBy(g => g.Key)
.ToList()
.ForEach(g => Validate(g));
这是一个 bool Validate 方法。
var results = source
.GroupBy(x => x.GroupNumber)
.OrderBy(g => g.Key)
.Select(g => new
{
GroupNumber = g.Key,
Result = Validate(g),
Items = g.ToList()
})
.ToList();
如果您需要它们作为组:
var qry = source.GroupBy(x=>x.GroupNumber).OrderBy(grp => grp.Key);
foreach(var grp in qry) {
Console.WriteLine(grp.Key);
foreach(var item in grp) {...}
}
如果您只需要像分组一样订购它们:
var qry = source.OrderBy(x=>x.GroupNumber);