HashSet<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);