【发布时间】:2015-06-01 17:29:26
【问题描述】:
var r = new Random();
var orderedList = aListOfPeople.OrderBy(x => x.Age).ThenBy(x => r.Next());
按“年龄”然后随机排序列表的更好方法是什么?
我的目标是确保如果 PersonA 年龄 = PersonB 年龄,则 PersonA 在某些情况下会排在第一位,而 PersonB 在其他情况下会排在第一位。
【问题讨论】:
-
随机排序不是排序,而是洗牌。我认为按年龄分组,然后改组可能是更好的方法。
-
@MattBurland 所以我的目标是“排序”然后“洗牌”只有相等的值
-
@Max,请参阅此随机播放:stackoverflow.com/a/375446/961113
-
洗牌似乎并不难,但我想保留列表的顺序。我只想洗牌相等的值。我无法理解它。
-
如果你只是按
Age排序,那么你应该得到你想要的结果。如果Age的值相等,则无法保证您获得它们的顺序。