首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

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

2012-11-16 
C#判断一个数组中(int型)有没有重复的值,并对它重新赋值如题,int [] arrayAnew int [10],现利用for循环分

C#判断一个数组中(int型)有没有重复的值,并对它重新赋值
如题,int [] arrayA=new int [10],现利用for循环分别对数组中的元素,按索引顺序附上随机的值。赋值完毕后,现在是arrayA中10个元素都有值,先:反复查找有重复值的元素并对其中一个赋新的随机值,最后使得十个元素的值都不相同。
怎么办?或者说,取十个不同的随机值(Next(1,10)),貌似有点难啊。。

[解决办法]
你换个思路,先把1..10依次赋值到数组中。然后用随机交换顺序把它们的顺序打乱。
就好象洗牌一样。
这才是唯一正确的方法。
[解决办法]
如果不考虑性能的话:

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));
[解决办法]
直接抽取不同岂不更好,参考:

http://www.cnblogs.com/rwecho/archive/2011/09/09/2172541.html

热点排行