【问题标题】:Linq Count Group on List<List<string>>List<List<string>> 上的 Linq 计数组
【发布时间】:2011-07-11 10:45:40
【问题描述】:

我有一个对象列表,每个对象都有一个子字符串列表。我正在尝试计算子列表中的唯一字符串。

示例对象:

private class ForumUser
{
    public List<string> RegisteredForums { get; set; }
}

实例化

List<ForumUser> forumUsers = new List<ForumUser>
    {
        new ForumUser {RegisteredForums = {"Forum1", "Forum2"}},
        new ForumUser {RegisteredForums = {"Forum1", "Forum2", "Forum3"}},
        new ForumUser {RegisteredForums = {"Forum1", "Forum2", "Forum3", "Forum4"}},
        new ForumUser {RegisteredForums = {"Forum1", "Forum2", "Forum3", "Forum4", "Forum5"}}
    };

预期输出:

字典 结果

Dictionary<string, int> result = forumUsers.GroupBy(&lt;your cleverness here&gt;
Forum1, 4
Forum2, 4
Forum3, 3
Forum4, 2
Forum5, 1

谢谢

【问题讨论】:

  • 顺便说一句,你的初始化脚本需要RegisteredForums = new List&lt;string&gt; { 而不是RegisteredForums = { 否则你会在创建时得到一个空引用异常......

标签: c# .net linq c#-4.0


【解决方案1】:
forumUsers.SelectMany (x=> x.RegisteredForums ).GroupBy (x => x).ToDictionary (x =>x.Key,x=>x.Count())

【讨论】:

    【解决方案2】:
    forumUsers.SelectMany(f => f.RegisteredForums).GroupBy(s => s)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2013-11-03
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      相关资源
      最近更新 更多