List <List <string >>上的Linq Count Group

1 .net c# linq c#-4.0

我有一个对象列表,每个对象都有一个子字符串列表.我试图计算子列表中的唯一字符串.

示例对象:

private class ForumUser
{
    public List<string> RegisteredForums { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

举例说明

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"}}
    };
Run Code Online (Sandbox Code Playgroud)

预期产量:

字典<'独特的论坛名称','论坛的数量'>结果

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

谢谢

Bob*_*ale 7

forumUsers.SelectMany (x=> x.RegisteredForums ).GroupBy (x => x).ToDictionary (x =>x.Key,x=>x.Count())
Run Code Online (Sandbox Code Playgroud)