char[] delimiterChars = { ' ', ',', '.', ':', '/', '-', '\t', '=', '&', '?' };
string Str = Convert.ToString(entry.Value);
string[] words = Str.Split(delimiterChars);
答案 0 :(得分:0)
您可以将数组存储在字典中,与任何其他类型的对象相同:
var dict = new Dictionary<int, int[]>();
dict.Add(1, new int[] { 1, 2, 3});
答案 1 :(得分:0)
如果要将数组转换为字典,可以执行此操作。
Dictionary<string, int> wordsDict = words.ToDictionary(x => x, x => 1);
这会将字符串作为键并将1
设置为默认整数(因为它出现了一次)。但是,如果您的words
数组包含重复键,则会抛出异常,因为字典不能包含重复键。我没有使用复杂的LINQ查询来处理它,而是建议使用一个简单的循环。
Dictionary<string, int> wordsDict = new Dictionary<string,int>();
foreach (string word in words)
{
if(wordsDict.ContainsKey(word)) //if the word already exists
wordsDict[word]++; //increment the value by 1
else
wordsDict.Add(word, 1); //otherwise add the word to the dictionary
}
答案 2 :(得分:0)
我的解决方案(最后几分钟写完):
char[] delimiterChars = { ' ', ',', '.', ':', '/', '-', '\t', '=', '&', '?' };
Dictionary<string, int> result = new Dictionary<string,int>();
List<string> urlList = new List<string>();
urlList.Add("test test test");
foreach (string url in urlList)
{
var wordList = url.Split(delimiterChars);
foreach (string word in wordList)
{
if (!result.ContainsKey(word))
{
result.Add(word, 1);
}
else
{
result[word]++;
}
}
}
Console.WriteLine(result.Count);
并经过测试。