我想只对字符串数组中的字母数字进行计数--没有空格,标点符号等。
我有一个笨重的代码:
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;
}
只计算字母数字的更好/更有效的方法是什么?
尝试使用Char.IsLetter
和Char.IsDigit
:
_lines.Sum(s => s.Count(c => Char.IsLetter(c) || Char.IsDigit(c)))
使用IsLetterorDigit
方法和Sum
private int GetCountOfCharsInDoc(string[] _lines)
{
return _lines.Sum(line => line.Count(char.IsLetterOrDigit));
}