假设我有一组字符串。 如何选择不包含特定参数值的所有元素?
List<string> TheList = .....
var TheCleanList = (from s in TheList
where s != parameter
select s).ToList();
我在考虑s!=参数的位置,但我想知道是否有更清洁的方法。
感谢。
答案 0 :(得分:7)
如果您不需要 new 列表,则不需要Linq - 使用Remove()
- 这样可以避免创建新列表:
如果要删除所有等于Parameter
的字符串:
TheList.RemoveAll(s => s == Parameter);
如果要删除包含Parameter
的所有字符串(问题不明确):
TheList.RemoveAll(s => s.Contains(Parameter));
答案 1 :(得分:3)
你的意思是:
List<string> TheList = .....
var TheCleanList = (from s in TheList
where !s.Contains(parameter)
select s).ToList();
答案 2 :(得分:2)
您可以使用String.Contains
var TheCleanList = (from s in TheList
where !s.Contains(parameter)
select s).ToList();
或者
var TheCleanList = TheList.Where(s => !s.Contains(parameter)).ToList();
String.Contains区分大小写。如果你想要一个不区分大小写:
string lower = parameter.ToLower();
...
where s.ToLower().Contains(lower)