仅计算字符串数组中的字母数字字符的更有效方法是什么?

B. *_*non -1 .net c# alphanumeric counting

我只想计算字符串数组中的字母数字 - 没有空格、标点符号等。

我有这个笨重的代码:

private int GetCountOfCharsInDoc(string[] _lines)
{
    int iCountOfChars = 0;
    string sLine;
    foreach (string line in _lines)
    {
        sLine = line.Replace(" ", string.Empty);
        sLine = line.Replace(".", string.Empty);
        sLine = line.Replace("?", string.Empty);
        sLine = line.Replace(",", string.Empty);
        sLine = line.Replace(";", string.Empty);
        sLine = line.Replace(":", string.Empty);
        sLine = line.Replace("(", string.Empty);
        sLine = line.Replace(")", string.Empty);
        sLine = line.Replace("'", string.Empty);
        sLine = line.Replace("\"", string.Empty);
        iCountOfChars = iCountOfChars + sLine.Count();
    }
    return iCountOfChars;
}
Run Code Online (Sandbox Code Playgroud)

什么是仅计算字母数字的更好/更有效的方法?

Pav*_*ski 5

使用char.IsLetterOrDigit方法只获取字母数字,CountSystem.Linq计算它们,最后Sum得到总数。

private int GetCountOfCharsInDoc(string[] _lines)
{
    return _lines.Sum(line => line.Count(char.IsLetterOrDigit));
}
Run Code Online (Sandbox Code Playgroud)