如何解决随机排序的IEnumerable每次使用都会改变顺序,而不是重新排序一次
我正在使用 OrderBy 和 Random() 改组 IEnumerable,然后使用 ElementAt 选择其中的一些。
简化版:
var r = new Random(DateTime.Now.Millisecond);
IEnumerable<IPublishedContent> testimonialsShuffled = testimonials.OrderBy(x => r.Next());
var testimonialA = testimonialsShuffled.ElementAt(0);
var testimonialB = testimonialsShuffled.ElementAt(1);
var testimonialC = testimonialsShuffled.ElementAt(2);
事实证明,这并不总是像我预期的那样返回三个不同的元素,因为每次使用 testimonialsShuffled
时,它似乎都会重新排序。
var testimonialA = testimonialsShuffled.ElementAt(0);
var testimonialB = testimonialsShuffled.ElementAt(0);
var testimonialC = testimonialsShuffled.ElementAt(0);
同样,我希望这段代码产生三个相等的变量,但它们通常不同(因为 testimonialsShuffled 中的第一个元素每次都会改变)。
我的目标只是对我的 IEnumerable 随机排序一次(这样它的顺序会在不同的页面加载时发生变化,但不会在单个视图中多次发生变化)。我做错了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。