Один из способов - использовать Distinct , чтобы сделать ваши строки уникальными:
List<string> a = new List<string>();
a.AddRange(new string[] { "a", "b", "a", "c", "d", "b" });
List<string> b = new List<string>();
b.AddRange(a.Distinct());
Еще один ресурс в разделе LINQ's Distinct: http://blogs.msdn.com/b/charlie/archive/2006/11/19/linq-farm-group-and-distinct.aspx
Другой способ: используйте HashSet , как предложили другие;
HashSet<string> hash = new HashSet<string>(inputStrings);
Найдите эту ссылку, чтобы увидеть, как реализовать ее в .net 2.0: https://stackoverflow.com/a/687042/284240
Если вы не используете 3.5, вы также можете сделать это вручную:
List<string> newList = new List<string>();
foreach (string s in list)
{
if (!newList.Contains(s))
newList.Add(s);
}
// newList contains the unique values
Другое решение (возможно, немного быстрее):
Dictionary<string,bool> dic = new Dictionary<string,bool>();
foreach (string s in list)
{
dic[s] = true;
}
List<string> newList = new List<string>(dic.Keys);
// newList contains the unique values
https://stackoverflow.com/a/1205813/284240