从字符串数组中

时间:2016-12-05 17:47:48

标签: c# linq

我有一系列字符串:

string[] arrStr = {"I am from USA","I like stackoverflow","stackoverflow always helps"};

我想从所有字符串中计算每个单词,例如

I : 2                 
stackoverflow : 2              
from : 1

我想使用LINQ获得此结果,并且只使用一个语句

2 个答案:

答案 0 :(得分:1)

你可以这样做:

  string[] words =string.Join(" ",arrStr).Split(' ').ToArray();

        var groups =
            from w in words
            group w by w into g
                select new
                {
                 Count=g.Count(), 
                 Word=g.Key
                };

它将为您提供以下对象的集合:

数:2 Word:stackoverflow

数:1 字:来自

答案 1 :(得分:1)

您可以使用小组来执行此操作,并使用SelectMany首先拼合所有单词:

var result= array.SelectMany(s=>s.Split(' '))
                 .GroupBy(s=>s)
                 .Select(g=>new {Word= g.Key,Count=g.Count()});