如何检查字符串是否包含所有不同的字符?

时间:2015-11-14 22:15:57

标签: c# string

例如,

如果字符串包含一个或多个重复字符,则为true。

如果字符串由所有不同的字符组成,则为false。

"A normal string with repeated characters" --> true
"Another" --> false
"abcdefghijklm" --> false
"aa" --> true

2 个答案:

答案 0 :(得分:4)

string str = "ab";  //.ToLower() -- maybe
bool ok = str.GroupBy(x => x).Any(g => g.Count() > 1);

答案 1 :(得分:4)

将字符串视为一系列字符。如果 distinct 元素的计数不等于元素的总数,则序列至少包含一个副本。

换句话说:

bool containsDuplicates = str.Distinct().Count() != str.Length;

(这将在幕后构建一个HashSet<char>,所以它基本上等同于明确构造一个然后使用Count属性的答案......我只是觉得这个方法稍微清楚一点,个人而言,明确提到清晰度。)