.net(C#)比较两个字符串列表并删除不匹配的元素

Jam*_*ame 10 c#

有没有办法比较两个字符串列表(无论区分大小写)或者我是否需要编写自定义代码进行此类比较?我还想从我的字典中删除不匹配的项目.

例如

List<string> lst1 = new List<string>();
lst1.Add("value1");
lst1.Add("VALUE2");

List<string> lst2 = new List<string>();
lst2.Add("value1");
lst2.Add("value2");
lst2.Add("value3");
Run Code Online (Sandbox Code Playgroud)

现在比较后我想只有"value1"和"value2" lst2.

此致,JS

Dyp*_*ppl 23

您可以使用LINQ Intersect方法.

var result = lst1.Intersect(lst2, StringComparer.InvariantCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)

您可以IEqualityComparer<string>使用StringComparer避免创建自己的实现

如果你想要结果lst2,那就这样做:

lst2 = lst1.Intersect(lst2, StringComparer.InvariantCultureIgnoreCase).ToList();
Run Code Online (Sandbox Code Playgroud)