0

你好呀。我希望我可以就我正在努力解决的问题寻求一些建议。

我有一个包含一千多个值的列表,并且有一些重复,不是完全重复,而是基于大小写的差异。所以例如我会有

培训培训在同一个清单或 愿景和价值观以及愿景和价值观

因此,在各种情况下,基于大小写差异存在细微差异。

我怎样才能去除这些“多余”的价值?

4

3 回答 3

2

使用 Linq:

var listWithDups = new List<string>() = {"blah","Blah","etc","etc."};
var listWithoutDups = listWithDups.Distinct(StringComparer.CurrentCultureIgnoreCase).ToList();
于 2013-02-11T10:11:04.437 回答
1

我会将所有条目添加到Hashset

Hashset 是一个集合,最多存储添加到其中的每个项目中的一个。您将编写一个“忽略大小写”权益比较器,并将其传递给 Hashset 构造函数。像:

     var set = new Hashset( yourListWithDuplicates, (x,y) => x.Equals(y, 
StringComparison.CurrentCultureIgnoreCase));
于 2013-02-11T10:11:33.840 回答
1

在 LinqPad 中试过这个:

var list = new List<String> { "Hello", "World", "HELLO", "beautiful", "WORLD" };

var l = list.Distinct(StringComparer.CurrentCultureIgnoreCase).ToList();

Console.WriteLine(l);
于 2013-02-11T10:19:06.867 回答