请看下面的情况,肯定会有趣..
如果我想为多个对象分配相同的值,我将使用这样的东西
string1 = string2 = string3 = string 4 = "some string";
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是,我想比较string1,string2,string3和string4与"someotherstring"...问题是有没有办法做到这一点,而无需编写单独的比较.即
string1 == "someotherstring" || string2 == "someotherstring" || string3 == "someotherstring" || string4 == "someotherstring"
Run Code Online (Sandbox Code Playgroud)
希望我能够解释这个问题..请向我提供帮助.
此致,Paresh Rathod
Rom*_*ier 14
在C#3.0中,您可以编写一个非常简单的扩展方法:
public static class StringExtensions
{
public static bool In(this string @this, params string[] strings)
{
return strings.Contains(@this);
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
if ("some string".In(string1, string2, string3, string4))
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
对于您的情况,您可以尝试这样的事情
if (new string[] { string1, string2, string3, string4 }.Contains("someotherstring"))
{
}
Run Code Online (Sandbox Code Playgroud)
我发现 LINQ 非常具有表现力,并且会考虑使用它来解决这个问题:
new[] { string1, string2, string3, string4 }.Any(s => s == "some string")
Run Code Online (Sandbox Code Playgroud)
不,C# 中没有,但你可以这样写:
(string1 == string2 && string2 == string3 &&
string3 == string4 && string4 == "someotherstring")
Run Code Online (Sandbox Code Playgroud)