首页 > 解决方案 > 如何检索字符串数组中某个字符的计数?

问题描述

我有这段代码来尝试计算字符串数组中出现了多少传入的字符:

string[] doc1StrArray;
. . .
private int GetCountOfSpecificCharacter(string CharToCount)
{
    int count = 0;
    count = doc1StrArray.Count(f => f == CharToCount);
    return count;
}

...这样称呼:

iCountOfCommasInDoc1 = GetCountOfSpecificCharacter(",");

...但它不起作用。它找不到逗号,例如,在以下情况下,尽管文档确实包含逗号。

在此处输入图像描述

更新

两者都在工作 - Roman 的建议和 Teroneko 的:

private int GetCountOfSpecificCharacterInDoc1(char CharToCount)
{
    return doc1StrArray.Sum(s => s.Count(c => c == CharToCount));
}

private int GetCountOfSpecificCharacterInDoc2(char CharToCount)
{
    return doc2StrArray.SelectMany(x => x).Count(c => c == CharToCount);
}

...但我不知道哪个更好/更有效。

标签: c#arrayslinq

解决方案


private int GetCountOfSpecificCharacter(char charToCount)
{
    int count = 0;
    foreach (var word in doc1StrArray)
        foreach (char character in word)
           if (character == charToCount)
               count++;
    return count;
}

推荐阅读