C#判断一个数组中(int型)有没有重复的值,并对它重新赋值

博客园铁粉 2012-10-22 09:47:23
如题,int [] arrayA=new int [10],现利用for循环分别对数组中的元素,按索引顺序附上随机的值。赋值完毕后,现在是arrayA中10个元素都有值,先:反复查找有重复值的元素并对其中一个赋新的随机值,最后使得十个元素的值都不相同。
怎么办?或者说,取十个不同的随机值(Next(1,10)),貌似有点难啊。。
...全文
560 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-10-22
  • 打赏
  • 举报
回复
直接抽取不同岂不更好,参考:

http://www.cnblogs.com/rwecho/archive/2011/09/09/2172541.html
SecretGarden 2012-10-22
  • 打赏
  • 举报
回复
如果不考虑性能的话:

int value;
var values = new List<int>();
Random random = new Random();
for(int i = 0; i < 10; i++)
{
do
{
value = random.Next(1, 11);
}while(values.Contains(value));
values.Add(value);
}
MessageBox.Show(String.Join(",", values));
bwangel 2012-10-22
  • 打赏
  • 举报
回复
你换个思路,先把1..10依次赋值到数组中。然后用随机交换顺序把它们的顺序打乱。
就好象洗牌一样。
这才是唯一正确的方法。

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧