C# linq-选择不等于某事物的元素
假设我有一组字符串。 如何选择不包含特定参数值的所有元素C# linq-选择不等于某事物的元素,c#,linq,C#,Linq,假设我有一组字符串。 如何选择不包含特定参数值的所有元素 List<string> TheList = ..... var TheCleanList = (from s in TheList where s != parameter select s).ToList(); 列表列表=。。。。。 var TheCleanList=(来自列表中的s 其中s!=参数 选择s.ToList(); 我在想s在
List<string> TheList = .....
var TheCleanList = (from s in TheList
where s != parameter
select s).ToList();
列表列表=。。。。。
var TheCleanList=(来自列表中的s
其中s!=参数
选择s.ToList();
我在想s在哪里!=参数,但我想知道是否有更干净的方法
谢谢。你的意思是:
List<string> TheList = .....
var TheCleanList = (from s in TheList
where !s.Contains(parameter)
select s).ToList();
列表列表=。。。。。
var TheCleanList=(来自列表中的s
其中!s.Contains(参数)
选择s.ToList();
您可以使用
或
Contains区分大小写。如果您想要案件不敏感:
string lower = parameter.ToLower();
...
where s.ToLower().Contains(lower)
如果您不需要新列表,则不需要Linq用于此-使用-这避免了创建新列表:
如果要删除所有等于参数的字符串
:
TheList.RemoveAll(s => s == Parameter);
如果要删除包含参数的所有字符串(问题中不清楚):
就像那样很好。。。有什么问题吗?只有一个建议,可能提到string.contains,比如!=,==etc是一种区分大小写的评估。正如我所看到的,包括我自己在内的很多人都忘记了,有时候Linq不是TSQL,它区分大小写。
string lower = parameter.ToLower();
...
where s.ToLower().Contains(lower)
TheList.RemoveAll(s => s == Parameter);
TheList.RemoveAll(s => s.Contains(Parameter));