使用HashSet<string>
而不是List<string>
。它准备好执行更好的性能,因为您不需要提供任何项目的检查。该集合将为您管理它。这是list
和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>
的实现不会给你nativelly。你可以做到,但你必须提供这种控制。对于样本,这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);
lines2是字符串遗憾的名单,而复制和粘贴代码 – vini
犯了一个小错误也可以像= SBC两个字符串之间的空间BGP – vini
你有没有考虑使用一个HashSet不是List 为这种情况下,它会表现得好多了。 –
bashmohandes