我有一种情况需要尝试过滤假的SSN号码。从我到目前为止看到的它们是假的,它们都是相同的数字或123456789.我可以过滤掉最后一个,但有没有一种简单的方法来确定所有字符是否相同?
答案 0 :(得分:42)
return(ssn。Distinct()。Count()== 1)
答案 1 :(得分:5)
这种方法可以解决问题:
public static bool AreAllCharactersSame(string s)
{
return s.Length == 0 || s.All(ch => ch == s[0]);
}
说明:如果字符串的长度为0,那么当然所有字符都是相同的。否则,如果字符串的字符都等于第一个字符串,则它们都是相同的。
答案 2 :(得分:3)
要摆脱这个问题,因为我们正在谈论SSN。您可以检查并使用this CodeProject演示项目来验证SSN。虽然这是在VB.Net中,但我想你可以想出同样的想法。
答案 3 :(得分:1)
抓住第一个字符,然后循环播放。
var ssn = "222222222";
var fc = ssn[0];
for(int i=0; i<ssn.Length; i++)
{
if(ssn[i]!=fc)
return false;
}
return true;
当然您还应该检查ssn
答案 4 :(得分:1)
char[] chrAry = inputStr.ToCharArray();
char first = chrAry[0];
var recordSet = from p in chrAry where p != first select p;
return !recordSet.Any();
答案 5 :(得分:-1)
您对此有何看法?
"jhfbgsdjkhgkldhfbhsdfjkgh".Distinct().Skip(1).Any()
要避免计算字符总数?您应该先检查null还是空白。