如果 lineInfo 不等于 c# 中的多个字符串怎么办?



在第二个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"(

相关内容

最新更新