Vin*_*jip 143
用一个HashSet<T>.例如:
var items = "A B A D A C".Split(' ');
var unique_items = new HashSet<string>(items);
foreach (string s in unique_items)
Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)
版画
A B D C
Luk*_*keH 132
您可以使用该Distinct方法返回IEnumerable<T>不同的项目:
var uniqueItems = yourList.Distinct();
Run Code Online (Sandbox Code Playgroud)
如果您需要以a返回的唯一项目序列List<T>,则可以添加对以下内容的调用ToList:
var uniqueItemsList = yourList.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
小智 6
在.Net 2.0中我非常肯定这个解决方案:
public IEnumerable<T> Distinct<T>(IEnumerable<T> source)
{
List<T> uniques = new List<T>();
foreach (T item in source)
{
if (!uniques.Contains(item)) uniques.Add(item);
}
return uniques;
}
Run Code Online (Sandbox Code Playgroud)
除了DistinctLINQ 的扩展方法之外,您还可以使用HashSet<T>通过集合初始化的对象。这很可能比 LINQ 方式更有效,因为它使用哈希码 ( GetHashCode) 而不是IEqualityComparer)。
事实上,如果适合您的情况,我首先会使用 aHashSet来存储物品。