【问题标题】:LINQ - Need help with a statement/ scenarioLINQ - 在声明/场景方面需要帮助
【发布时间】:2009-08-17 22:02:20
【问题描述】:

场景如下:

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

基本上,从最低组号到最高组号,先验证一组输出,然后再验证更高的组号集。

谢谢, 马特

【问题讨论】:

  • 这看起来像家庭作业。你可能想这样标记它。
  • 很高兴看到您到目前为止尝试了什么,您的输入和输出是什么,您使用什么来验证等等。

标签: c# linq scenarios


【解决方案1】:

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

这是一个 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();

【讨论】:

    【解决方案2】:

    如果您需要他们作为组:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2014-02-06
      相关资源
      最近更新 更多