【发布时间】:2013-08-22 14:07:36
【问题描述】:
在 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;
}
我想消除必须具有三行比较代码的情况。
谢谢!
【问题讨论】:
-
这里使用 linq 是一个例子stackoverflow.com/questions/194930/…
-
您的用例是什么?你从哪里得到字母或输入?
-
return letters.Contains("a") || letters.Contains("b") || letters.Contains("c")? -
还有为什么你的测试字符串中有
,逗号......? -
除了下面的所有答案(都很好),我建议您创建一个扩展方法或可重用的静态方法来为您完成工作并隐藏实现细节。没有什么比您的 自己的 自定义签名更好的了,例如
letters.HasAny("abc")或letters.HasAny('a', 'b', 'c'),或者如果“abc”检查很常见,letters.HasABC()(或任何对您最有意义的名称/签名)。在内部,该扩展方法实现可以使用以下任何想法,针对速度或维护或灵活性进行优化,或者你有什么。