【问题标题】:LINQ To Object - How To Group Based On FieldLINQ To Object - 如何根据字段进行分组
【发布时间】:2011-04-04 19:47:09
【问题描述】:

我试图在我的 ObservableCollection 上使用 LINQ 对每个对象中的一些值进行分组。为简单起见,假设 MyObject 有一个属性:

public List<string> UserNames;

我想编写一个 LINQ 查询,它返回集合中每个对象的 UserNames 中的所有字符串——然后按实际名称对它们进行分组。我希望最终结果显示每个唯一名称以及在集合中找到该名称的次数。

使用 T-Sql 很容易做到这一点,但我对 Linq to Objects 没有任何运气。

谢谢,

【问题讨论】:

    标签: linq-to-objects


    【解决方案1】:

    这个怎么样?

    var allUnique = myColl.SelectMany(x => x.UserNames).GroupBy(z=>z);
    
    foreach (var s in allUnique )
    {
        Console.WriteLine(s.Key.ToString() + " Count: " + s.Count().ToString());
    }
    

    【讨论】:

      【解决方案2】:
      collection.SelectMany(myObj => myObj.UserNames)
                .GroupBy(name => name)
                .Select(g => new { Name = g.Key, Count = g.Count() });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多