快速多字符串比较

Rob*_*abe 0 c# linq string

在c#中有一种快速的方法可以用更高效的代码替换以下内容:

string letters = "a,b,c,d,e,f";

if (letters.Contains("a"))
{
    return true;
}

if (letters.Contains("b"))
{
    return true;
}

if (letters.Contains("c"))
{
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我想取消必须有三行比较代码.

谢谢!

Dan*_*rth 8

你可以使用这样的东西:

return letters.Any(c => c == 'a' || c == 'b' || c == 'c');
Run Code Online (Sandbox Code Playgroud)

或这个:

var lettersToLookFor = "abc";
return letters.Any(c => lettersToLookFor.Contains(c));
Run Code Online (Sandbox Code Playgroud)

根据注释,可以进一步缩短前一个代码块的最后一行:

return letters.Any(lettersToLookFor.Contains);
Run Code Online (Sandbox Code Playgroud)

  • 甚至:`letters.Any(lettersToLookFor.Contains)`. (3认同)