为了账号安全,请及时绑定邮箱和手机立即绑定

C#随机获取0-50之间任意数,但是这个数不能存在于另两个集合

C#随机获取0-50之间任意数,但是这个数不能存在于另两个集合

手掌心 2018-12-06 13:27:45
从1-50之间随机取数,但是这个数不能在其他两个集合中出现,其他两个集合例如: List1:1,5,7,15.... List2:1,7,20,44.... 请问这个随机数要怎么取
查看完整描述

7 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

Random rd=new random(0,50); int num = =-1; while(true) {      num = rd.next();      if(!List1.contains(num)&&!List2.contains(num))            break; }
查看完整回答
反对 回复 2018-12-09
?
慕村225694

TA贡献1880条经验 获得超4个赞

但是我的集合要是一个实体类类型的呢,比如:List ,List,我要看User1和User2的年龄不包含的呢
查看完整回答
反对 回复 2018-12-09
?
慕森王

TA贡献1777条经验 获得超3个赞

@淘@淘: 额,那就要循环User1来判断年龄了,不然就在做随机数之前先将两个List中的年龄缓存到一个List
查看完整回答
反对 回复 2018-12-09
?
精慕HU

TA贡献1845条经验 获得超8个赞

@滴答的雨: 二楼的思路挺好的。若你的选择范围会填充趋近于满的话这种算法优势就体现出来了。但是如果10000个数实际list只有存几百个,那这个算法就不好
查看完整回答
反对 回复 2018-12-09
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

实体类的话可以继承IComparable接口,重写比较方法将相等条件设置为根据该类的Age属性,然后就能和普通的数组一样来了。
查看完整回答
反对 回复 2018-12-09
  • 7 回答
  • 0 关注
  • 597 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信