如何计算列表中出现两个单词的次数c#

时间:2013-11-26 04:49:09

标签: c# list count counter

我正在寻找如何在列表中以相同顺序出现两个单词的计数器。由于单词可以变化(我使用Console.ReadLine输入它们)我无法弄清楚该怎么做。我的列表格式例如:

list[0] : list[1] (1) //this is where i want count
list[1] : list[2](1)

所以说的话是:

Hello : I
am : John
Hello : I


![when the program runs](http://imgur.com/HelGjxV)

顺便说一下,第二句写的就是我输入的内容。当第二个Hello:我进入列表。我怎么能设置计数器(1)更新为2.任何帮助将不胜感激。到目前为止,我将包含我的相关代码:

List<string> list = new List<string>();
list.AddRange(words);
list.AddRange(words1);

//counts total number of words in list. 
int count = 0;
count  = list.Count(d => list.Contains(d));

//Displays occurance
for (int i = 0; i < list.Count - 1; i++)
    list[i] = string.Format("{0} : {1}", list[i], list[i + 1]);

list.ForEach(Console.WriteLine);

2 个答案:

答案 0 :(得分:0)

您可以将词典用于这种类型的操作

Dictionary<string,List<int>> dict = new Dictionary<string,List<int>>();
if(dict.ContainsKey(wordkey))
    //update the key
    dict[word].Add(newIndex);
else
{
    var newList = new List();
    newList.Add(index);
    dict.Add(worditem,newList);
}

答案 1 :(得分:0)

列表(T).FindAll方法就是你想要的。

此处提供示例代码 http://msdn.microsoft.com/en-us/library/fh1w7y8z(v=vs.110).aspx