Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从列表中删除字符串对象?_C#_Linq_List - Fatal编程技术网

C# 如何从列表中删除字符串对象?

C# 如何从列表中删除字符串对象?,c#,linq,list,C#,Linq,List,我有两个字符串列表Header1和Header2 List<String> Header1 = new List<String>(); Header1.add("String1"); Header1.add("String2"); Header1.add("String3"); Header1.add("String4"); List Header1=新列表(); 标题1.添加(“第1条”); 标题1.添加(“第2条”); 标题1.添加(“第3条”); 标题1.添加(“

我有两个字符串列表
Header1
Header2

List<String> Header1 = new List<String>();
Header1.add("String1");
Header1.add("String2");
Header1.add("String3");
Header1.add("String4");
List Header1=新列表();
标题1.添加(“第1条”);
标题1.添加(“第2条”);
标题1.添加(“第3条”);
标题1.添加(“第4条”);

List Header2=新列表();
标题2.添加(“第1条”);
标题2.添加(“第2条”);
我想通过忽略区分大小写来删除
Header1
Header2
中的这些条目“String1”和“String2”

您知道如何使用
LINQ
或字符串操作来完成吗


谢谢

不需要Linq。
列表
类提供了一种方便的方法,您可以使用:

var stringsToRemove = new[] { "string1", "string2" };
var comp = StringComparison.InvariantCultureIgnoreCase;
Header1.RemoveAll(s => Header2.Any(t => s.Equals(t, comp)));
你可以做:

Header1.Except(Header2, new EqualityComparer<string>((a, b) => a.Equals(b, StringComparison,OrdinalIgnoreCase)));
Header1.除了(Header2,新的等式比较((a,b)=>a.Equals(b,StringComparison,OrdinalIgnoreCase));
EqualityComparer
允许您指定自定义比较器,以便仅当
字符串
相等时,它才会返回true,而不考虑大小写


我认为LINQ不允许您修改集合。但是,如果您愿意在没有Header2中的项目的情况下创建新的集合,请尝试以下方法:

var result = Header1.Except(Header2, StringComparer.OrdinalIgnoreCase);
Header1.RemoveAll(item => Header2.Contains(item, StringComparer.OrdinalIgnoreCase));
如果确实要修改原始列表,请尝试以下操作:

var result = Header1.Except(Header2, StringComparer.OrdinalIgnoreCase);
Header1.RemoveAll(item => Header2.Contains(item, StringComparer.OrdinalIgnoreCase));

您想从Header1中删除Header2中存在的字符串?@Usman,是的,没错。谢谢,但我想使用列表
Header2
。我不知道这个名单算不算在内Header2@www.sapnaedu.in对不起,我没有先读这个问题。查看我的最新答案非常感谢您的快速回答:)