使用 aHashSet<string>
而不是 a List<string>
。它准备好执行更好的性能,因为您不需要为任何项目提供检查。该集合将为您管理它。list
这就是 a和 a的区别set
。样品:
HashSet<string> set = new HashSet<string>();
set.Add("a");
set.Add("a");
set.Add("b");
set.Add("c");
set.Add("b");
set.Add("c");
set.Add("a");
set.Add("d");
set.Add("e");
set.Add("e");
var total = set.Count;
总计为5
,值为a
, b
, c
, d
, e
。
的实现List<T>
并没有给你原生。你可以做到,但你必须提供这种控制。对于示例,此extension method
:
public static class CollectionExtensions
{
public static void AddItem<T>(this List<T> list, T item)
{
if (!list.Contains(item))
{
list.Add(item);
}
}
}
并使用它:
var list = new List<string>();
list.AddItem(1);
list.AddItem(2);
list.AddItem(3);
list.AddItem(2);
list.AddItem(4);
list.AddItem(5);