LINQ - 需要有关语句/场景的帮助

时间:2009-08-17 22:02:21

标签: c# linq scenarios

以下是该方案:

  

给定一个输出列表,每个输出都与一个基于整数的GroupNumber相关联。对于以最低GroupNumber(1)开头的输出列表中的每个不同GroupNumber。循环显示不同的组号集并执行验证方法。

基本上,从最低到最高的组编号开始,在验证更高的组编号集之前首先验证一组输出。

谢谢, 马特

2 个答案:

答案 0 :(得分:2)

解决这个问题的方法太多了:

这是一个void Validate方法。

source
  .GroupBy(x => x.GroupNumber)
  .OrderBy(g => g.Key)
  .ToList()
  .ForEach(g => Validate(g));

这是一个bool验证方法。

var results = source
  .GroupBy(x => x.GroupNumber)
  .OrderBy(g => g.Key)
  .Select(g => new
  {
      GroupNumber = g.Key,
      Result = Validate(g),
      Items = g.ToList()
  })
  .ToList();

答案 1 :(得分:1)

如果您需要它们作为群组:

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);