c#我往string列表里循环添加随机数,如何确保不添加重复的数?

2025-04-02 03:35:53
推荐回答(4个)
回答1:

List 有contain的方法,添加随机数前先判断下。比如你这个

for (int i = 0; i < 6; i++)
{
string value=Convert.ToString(A.Next(1, 33));
if(!mlist.contain(value))
{
mlist.Add(value);
}
else
{
//messagebox.show("重复");随机数没加上 i停留一回合
i=i-1;
}
}

回答2:

添加之前先去检查是否存在,最容易想到的就是每次插入之前先去循环列表检查是否存在,如果存在就不在添加,如果不存在就添加,当然也有其他的方式

回答3:

Random 成员
名称 ● 说明
Equals ● 确定指定的 Object 是否等于当前的 Object。(继承自 Object。)
Finalize ● 允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。(继承自 Object。)
GetHashCode ● 用作特定类型的哈希函数。(继承自 Object。)
GetType ● 获取当前实例的 Type。(继承自 Object。)
MemberwiseClone ● 创建当前 Object 的浅表副本。(继承自 Object。)
Next ● 已重载。 返回随机数。
NextBytes ● 用随机数填充指定字节数组的元素。
NextDouble ● 返回一个介于 0.0 和 1.0 之间的随机数。
Sample ● 返回一个介于 0.0 和 1.0 之间的随机数。
ToString ● 返回表示当前 Object 的 String。(继承自 Object。)

用 C# 生成不重复的随机数
可以使用两种方式初始化一个随机数发生器:
第一种方法不指定随机种子,系统自动选取当前时间作为随机种子:
Random ro = new Random();
第二种方法可以指定一个int型参数作为随机种子:
int iSeed=10;
Random ro = new Random(10);
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int) (tick >> 32));
这样可以保证99%不是一样。
可以使用这个Random类的对象来产生随机数,这时候要用到Random.Next()方法。这个方法使用相当灵活,甚至可以指定产生的随机数的上下限。
不指定上下限的使用如下:
int iResult;
iResult=ro.Next();
下面的代码指定返回小于100的随机数:
int iResult;
int iUp=100;
iResult=ro.Next(iUp);
而下面这段代码则指定返回值必须在50-100的范围之内:
int iResult;
int iUp=100;
int iDown=50;
iResult=ro.Next(iDown,iUp);
除了Random.Next()方法之外,Random类还提供了Random.NextDouble()方法产生一个范围在0.0-1.0之间的随机的双精度浮点数:
double dResult;
dResult=ro.NextDouble();

回答4:

再写个循环 每次添加数据的时候 先判断下这个数字是否已存在