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));