从List <string []>到字典中获取唯一字符串的计数

时间:2015-07-10 10:09:44

标签: c# arrays dictionary

我想输入bin/ruby.exe

输出是一个字典,其中键是用于索引的唯一字符串,值是浮点数组,数组中的每个位置代表{{1}中List<string[]>的键的计数}}

到目前为止,这是我的尝试

string[]

我被困在字典部分。实现这一目标的最有效方法是什么?

1 个答案:

答案 0 :(得分:5)

听起来你可以使用类似的东西:

var dictionary = doc
    .SelectMany(array => array)
    .Distinct()
    .ToDictionary(word => word,
                  word => doc.Select(array => array.Count(x => x == word))
                             .ToArray());

换句话说,首先找到不同的单词集,然后为每个单词创建一个映射。

要创建映射,请查看原始文档中的每个数组,并查找该数组中单词出现次数。 (因此每个数组都映射到int。)使用LINQ在整个文档上执行映射,ToArray为特定单词创建int[] ...这是值那个词的词典条目。

请注意,这会创建一个Dictionary<string, int[]>而不是Dictionary<string, float[]> - 这对我来说似乎更明智,但是如果你有可能总是将Count的结果转换为float 真的想要。