从字符串列表中删除重复项,还删除键值

时间:2018-12-16 12:34:30

标签: vb.net filtering

我想从我拥有的字符串列表中删除重复的项目。 我有2个文本文件。一个带有我所有的结果,另一个是完成的结果。

我希望从包含我所有结果的文件中删除完成的结果。到目前为止,我已经尝试过使用distinct函数,但这也将始终留下一个不重复的字符串。

是否可以使用独特的功能来删除重复的项目?

2 个答案:

答案 0 :(得分:0)

您可以在字符串类中使用.RemoveAll函数,该函数采用一个函数并删除给定条件的所有匹配项,如下所示。

var x = new List<string>() { "a", "a", "b", "c" };
x.RemoveAll(a => string.Equals(a, "a"));

此代码将删除列表中a的两个实例。

或者您有一个要匹配的集合以供删除:

var collToRemove = new List<string>() { "a" };
x.RemoveAll(a => collToRemove.Contains(a));

答案 1 :(得分:0)

听起来像您想要Except功能:

Dim results = {"a", "a", "b", "c", "d", "d"}
Dim finished = {"a", "c"}

Dim remainder = results.Except(finished)

Console.WriteLine(String.Join(", ", remainder))

输出:

  

b,d

除非您想保留两次出现的“ d”。