3

ときどき、値のセットで重複するIDをチェックする必要があります。通常、このためにディクショナリを使用します。キーだけを使用し、値は空のままにします。

これはタイトで高度に最適化されたコードであることに注意してください。「時期尚早の最適化」を叫ばないでください。CPUとRAMが限界まで圧迫されているシナリオを想定して、私はより最適なソリューションについて意見を集めたいと思っていました。おそらく、Lookupクラスのようなものは、不要なRAM割り当てを回避するため、わずかに高速になります。そのようなクラスはサードパーティですか、それとも私がBCLで見落としているクラスがありますか?

グーグルが高速とコンパクトの両方の辞書クラスのコードをリリースしたことを理解しています-おそらくそこにC#/。Netに移植できるものがありますか?

ありがとう。

4

1 に答える 1

6

.NET 3.5 でHashSet クラスを使用します。

HashSet<int> set = new HashSet<int>() { 1, 2, 3 };
set.Add(5);
for (int index = 0; index < 10; index++)
{
    Console.WriteLine("{0} : {1}", index, set.Contains(index));
}
于 2010-01-25T23:19:22.030 に答える