.NET Framework 计算不同的字符

示例

如果您需要计算不同的字符,则出于“备注”部分所述的原因,您不能简单地使用Lengthproperty,因为它的长度System.Char不是字符而是代码单位(不是Unicode代码点或字素)。例如,如果仅写就将得到不正确的结果,请纠正代码:text.Distinct().Count()

int distinctCharactersCount = text.EnumerateCharacters().Count();

进一步的步骤是计算每个字符的出现次数,如果性能不成问题,则可以这样简单地执行此操作(在本示例中,无论大小写):

var frequencies = text.EnumerateCharacters()
    .GroupBy(x => x, StringComparer.CurrentCultureIgnoreCase)
    .Select(x => new { Character = x.Key, Count = x.Count() };