Unity中集合的随机数(指定长度—List、Dictionary)

获取Dictionary中不重复的随机数(返回Dictionary):
        public static Dictionary<TKey, TValue> RandomValues<TKey, TValue>(Dictionary<TKey, TValue> allDic, int randomCount)
        {
            System.Random rand = new System.Random();
            Dictionary<TKey, TValue> newDic = new Dictionary<TKey, TValue>();
            int size = allDic.Count;
            randomCount = randomCount > size ? size : randomCount;
            List<TKey> values = Enumerable.ToList(allDic.Keys);
            while (newDic.Count < randomCount)
            {
                TKey tk = values[rand.Next(size)];
                if (!newDic.Keys.Contains(tk))
                {
                    newDic[tk] = allDic[tk];
                }
            }
            return newDic;
        }

获取List中不重复的随机数(返回List): 

 public static List<TKey> RandomValues<TKey>(List<TKey> allList, int randomCount)
        {
            System.Random rand = new System.Random();
            List<TKey> newList = new List<TKey>();
            int size = allList.Count;
            randomCount = randomCount > size ? size : randomCount;
            //List<TKey> values = Enumerable.ToList(allList.Keys);
            while (newList.Count < randomCount)
            {
                TKey tk = allList[rand.Next(size)];
                if (!newList.Contains(tk))
                {
                    newList.Add(tk);
                }
            }
            return newList;
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值