在第二个if语句上,我想做lineInfo不等于多个字符串,然后返回....
if (lineInfo.Equals("Eriri"))
{
Console.WriteLine("Here is Eriri"); Eriri.Visible = true;
}
if (!lineInfo.Equals("Emilia", "Eriri", "Xayah", "Eucliwood", "Asuna"))
{
Console.WriteLine("Sorry, we do not have her, try another one");
Waifus.Visible = true;
}
第一个有效,因为我只有一个字符串。第二个在 .equals 上给出一个错误。说"方法'等于'没有重载需要 5 个参数"。
字符串等于方法只能比较一个字符串值。
public override bool Equals(object obj);
如果要比较多个字符串,可以尝试使用集合包含方法进行。
添加要比较字符串值、字符串数组或集合。
然后使用Contains
检查值,是否在集合中做比较多个字符串。
List<string> condition = new List<string>() { "Emilia", "Eriri", "Xayah" , "Eucliwood" };
if (!condition.Contains(lineInfo))
{
Console.WriteLine("Sorry, we do not have her, try another one");
Waifus.Visible = true;
}
如果您在多个位置执行此操作,则可以使用以下扩展方法:
public static bool EqualsOneOf(this string self, params string[] values) => values.Contains(self);
用法: lineInfo.EqualsOneOf("Emilia", "Eriri", "Xayah", "Eucliwood", "Asuna"(