C# - Random.Next(Length-1)vs OrderBy(x => Guid.NewGuid())。First()

时间:2017-12-05 07:25:45

标签: c#

哪一个更快?

我正在对ConcurrentDictionary进行测试,并希望将其随机化并返回1个结果。基本上从中随机选取结果。

哪种方法更快/更有效? 效率和cpu /内存一样少,同时具有冲突等可能的错误等。

方法A.

Random rand = new Random();
var result = concDict.ElementAt(rand.Next(concDict.Count() - 1));

方法B.

var result = concDict.OrderBy(x=>Guid.NewGuid()).First();

在我的模糊"测试除了方法B更有效之外我没有看到太多差异。方法A可以使concDict的Count与concDict.ElementAt不同步导致ArgumentOutOfRangeException: 'maxValue' must be greater than zero.,而方法B实际上不能导致{。

0 个答案:

没有答案