使用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