チェック)の
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
public class Program
{
static IEnumerable<int> Range(int min, int max)
{
for (int i = min; i <= max; i++)
yield return i;
}
public static void Main()
{
var firsts = new HashSet<int>();
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Run: " + i.ToString());
var h = new HashSet<int>();
foreach (var num in Range(-1000, +1000).OrderBy(o => Guid.NewGuid()).ToList())
{
h.Add(num);
if (h.Count == 1)
Console.WriteLine("first value inserted: " + num.ToString());
firsts.Add(h.First());
}
Console.WriteLine("All firsts: " + string.Join(",", firsts));
firsts.Clear();
}
Console.ReadLine();
}
}
観察:
- 各HashSetの自体にのみ1を生成しますすべて2001年のインサート上に第一-値
- すべてHashSetの異なる1次回を(生成) - 値は、彼らが他の最初のint
Run: 0 first value inserted: 507 All firsts: 507 Run: 1 first value inserted: 511 All firsts: 511 Run: 2 first value inserted: -600 All firsts: -600 Run: 3 first value inserted: -624 All firsts: -624 Run: 4 first value inserted: -367 All firsts: -367 Run: 5 first value inserted: -110 All firsts: -110 Run: 6 first value inserted: 983 All firsts: 983 ... etc ...
- HashSetのインスタンスを開始した場合には、同じファーストを(持っているようです)
- ハッシュセットに入れられる最初の項目
- 異なっているように見える異なるHashSetは異なるように見える最初の値が異なる場合は/最初の値が異なる場合
少なくともWindowsと現在のコンパイラの下
- は、それはHashSetの1次回()あなたはWin10上で、今日HashSetの上で()1次回をキャッシュして(1次回にそれを比較する場合を除き、それは
予測可能である)のためと思われます15歳でAndroid 12.3 - 同じ正確なHashSetのために - あなたは今まで知っていることはありません。ちょうどHashSetの実装が同じであることを願っています。 –
この回答は、それに頼ることは非常に悪い考えであると説明しています。https://stackoverflow.com/a/657289/2651069 –
私はなぜこれに頼る必要があるのでしょうか? – Evk