如何随机化数组中的数字
我有一个像这样的数组:
int[] numbers = new [] { 1, 2, 3, 4 };
我想随机化它(每次都不同),以便它生成另一个具有相同大小和数字但每次顺序不同的数组。
I have an array like this one:
int[] numbers = new [] { 1, 2, 3, 4 };
I'd like to randomize this (different each time) so that it makes another array with the same size and numbers but in a different order each time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
尝试这样的事情:
Try something like this:
下面是一个可行的方法:
编辑:
另一种方法可以是对
IEnumerable
集合使用 LINQ 扩展方法:如果您想要一个数组而不是
List
您可以调用.ToArray()
来代替。当然,这适用于任何
int
数组,而不仅仅是1, 2, 3, ..., n
。您甚至可以在T
中使该方法通用。Here's a method that will work:
Edit:
Another way could be using LINQ extension methods for
IEnumerable<T>
collections:If you want to have an array instead of a
List<int>
you can invoke.ToArray()
instead.Of course, that will work for any array of
int
, not only for1, 2, 3, ..., n
. You can even make the method generic inT
.这甚至可以确保值不重复;
This even takes care that the values dont repeat ;
在我看来,最简单的方法是:
In my eyes the easiest way would be this:
有用:
It works: