如何计算c#中列表中相同值的数量?

时间:2013-06-07 07:40:38

标签: c#

以下是代码:

List<string> Listahan = new List<string>();
Listahan.Add("TEST1");
Listahan.Add("TEST2");
Listahan.Add("TEST3");
Listahan.Add("TEST4");
Listahan.Add("TEST5");
Listahan.Add("TEST5");
Listahan.Add("TEST1");

然后我想要的是当我在文本框中输入TEST1时,它将输出它的计数为2。 提前谢谢。

2 个答案:

答案 0 :(得分:7)

string textboxVal = "TEST1";    
int testOccurence = Listahan.Count(str => str == textboxVal);

如果您使用的是。NET 2.0 ,请勿使用LINQBridge

int testOccurence = Listahan.FindAll(delegate (string str) { return str == textboxVal;})
                            .Count;

一些注意事项:可能是这种情况,您可能还需要不区分大小写的搜索。例如,用户可以输入"test1"并获得有意义的结果。您可以使用下一个代码来实现此目的:

Listahan.Count(str => string.Equals(str, textboxVal, StringComparison.OrdinalIgnoreCase))

答案 1 :(得分:2)

如果经常访问,您还可以使用GroupBy来计算所有文本:

var dic = Listahan.GroupBy(x => x)
                  .ToDictionary(g => g.Key, g => g.Count());

int count = dic["TEST1"]; //count of 'TEST1'