我有一系列字符串:
string[] arrStr = {"I am from USA","I like stackoverflow","stackoverflow always helps"};
我想从所有字符串中计算每个单词,例如
I : 2
stackoverflow : 2
from : 1
我想使用LINQ获得此结果,并且只使用一个语句
答案 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()});