【发布时间】:2017-05-04 19:32:06
【问题描述】:
我只是在寻找是否有更好的方法来执行以下操作。
假设我有以下字符串:
string fooWeb = "web";
string fooDesktop = "desktop";
string fooMac = "mac";
string fooIphone = "iphone";
string fooAndroid = "android";
list<string> Names = new List<string>();
Names.Add("web");
Names.Add("mac");
Names.Add("iphone");
Names.Add("android");
我正在循环浏览这个列表,我想排除包含例如“web”和“mac”&和“android”的项目,可能还有其他项目。
有没有比我在下面尝试的更好的方法来实现这一点:
foreach (var item in this._repo.FooRepo())
if (!(item.SystemName == "Web" || item.SystemName == "android" || item.SystemName == "mac"))
{
//add to new list
}
}
我在问,因为我有大约 8 个字符串要检查。
【问题讨论】:
-
正则表达式有用吗?
-
在什么意义上更好?更好,这样您就不需要列出所有案例或者您想要更短的代码?对于后者,您可以使用 LINQ:
var list = this._repo.FooRepo().Except(new List<string> { "Web", "android", "mac"});,但这会创建额外的列表对象,而这并不是真正需要的。 -
我猜是后者,因为在 if 语句中写出所有这些似乎很麻烦,以下所有答案都是有效的建议。我更喜欢这个带有 .Except 的 linq。我一直在寻找这样的东西。
标签: c#