作者:旧瑾LA_364 | 来源:互联网 | 2022-12-03 19:55
我相信每个人都知道在csharp中带有'或'的if子句:
bool bananaIsYellow = true;
bool bananaIsBrown = false;
if (bananaIsYellow || bananaIsBrown) bool bananaIsRipe = true;
事情是,一旦你开始比较字符串,这会变得非常混乱:
string bananaColor = yellow;
if (bananaColor == "yellow" ||
bananaColor == "brown" ||
bananaColor == "blue")
{
bool bananaIsRipe = true;
}
有没有办法缩短这个?
我知道的唯一方法就是这样(显然不是更漂亮或更短):
string bananacolor = "yellow";
if (StringComparer(bananacolor, new string[] { "yellow", "brown", "blue" })) { bool bananaIsRipe = true; }
}
private static bool StringComparer(string source, string[] values)
{
foreach (var value in values)
{
if (source == value) return true;
}
return false;
}
Tim Schmelte..
6
您可以使用集合和Enumerable.Contains
:
string[] ripeColors = { "yellow", "brown", "blue" };
bool isBananaRipe = ripeColors.Contains(bananacolor);
如果要以不区分大小写的方式进行比较:
bool isBananaRipe = ripeColors.Contains(bananacolor, StringComparer.InvariantCultureIgnoreCase);
顺便说一句,蓝香蕉成熟了吗?EW!
1> Tim Schmelte..:
您可以使用集合和Enumerable.Contains
:
string[] ripeColors = { "yellow", "brown", "blue" };
bool isBananaRipe = ripeColors.Contains(bananacolor);
如果要以不区分大小写的方式进行比较:
bool isBananaRipe = ripeColors.Contains(bananacolor, StringComparer.InvariantCultureIgnoreCase);
顺便说一句,蓝香蕉成熟了吗?EW!