【发布时间】:2017-08-16 05:20:27
【问题描述】:
使用 C# 6,我有一个按字母顺序排列的名称列表:
List<String> names = getAlphabeticallyOrderedNames();
我需要改组名称,但我希望每次都得到相同的结果。所以我不能使用:
List<String> shuffledNames = names.OrderBy(x => Guid.NewGuid());
然后我尝试了类似的方法:
List<String> shuffledNames = names.OrderBy(x => "d2fda3b5-4089-43f9-ba02-f68d138dee49");
或者
List<String> shuffledNames = names.OrderBy(x => Int32.MaxValue);
但是名字并没有被洗牌……
我该如何解决这个问题?
【问题讨论】:
-
我敢打赌,使用带有恒定种子的 Random 随机播放。
-
使用来自this answer的洗牌器,但使用带有种子的
Random构造函数的重载,并且每次都使用相同的种子。 -
.OrderBy(x => Guid.NewGuid()); 我认为这是一个可怕的 hack,用于 SQL 或在极少数情况下......
-
@xanatos 在这种情况下我没有在 SQL 中使用,但有时我需要在 SQL 中使用它
标签: c#