从一系列单词中返回不同的元素

时间:2014-09-06 19:02:44

标签: c# list distinct

假设我有一个包含这样的单词的列表:

List<string> words = new List<string>{ "apple", "computer", "user", "AppLe", "USer", "photo", "USER" };

我希望生成一个这样的新列表:

List<string> newWords = new List<string>{ "apple", "computer", "user", "photo" };

如何清除所有多个单词的第一个列表(无论它们是如何写的)?

非常感谢,提前, 菲利普

2 个答案:

答案 0 :(得分:5)

像这样:

List<string> newWords = words.Distinct(StringComparer.OrdinalIgnoreCase).ToList();

这样您就不会更改结果列表中的任何单词(例如,将它们设为小写)。

您还可以使用:StringComparer.CurrentCultureIgnoreCaseStringComparer.InvariantCultureIgnoreCase,具体取决于您的文化要求。

答案 1 :(得分:1)

List<string> words = new List<string> { "apple", "computer", "user", "AppLe", "USer", "photo", "USER" };
words = words.Select(x => x.ToLower()).Distinct().ToList();