C# Random生成多个不重复的随机数万能接口
C#,Radom.Next()提供了在一定范围生成一个随机数的方法,我现在有个业务场景是给其他部门推送一些数据供他们做抽样检查处理,假设我的数据库里面有N条数据,现在要定期给其随机推送数据,我需要先拿出数据List,然后随机生成若干个数据List索引,最终把这些数据推送给目标数据库。
通过封装,生成定量随机数的方法如下,基本满足所有场景:
/// <summary> /// 根据随机数范围获取一定数量的随机数 /// </summary> /// <param name="minNum">随机数最小值</param> /// <param name="minNum">是否包含最小值</param> /// <param name="maxNum">随机数最大值</param> /// <param name="minNum">是否包含最大值</param> /// <param name="ResultCount">随机结果数量</param> /// <param name="rm">随机数对象</param> /// <param name="isSame">结果是否重复</param> /// <returns></returns> private static List<int> GetRandom(int minNum, bool isIncludeMinNum, int maxNum, bool isIncludeMaxNum, int ResultCount, Random rm, bool isSame) { List<int> randomList = new List<int>(); int nValue = 0; #region 是否包含最大最小值,默认包含最小值,不包含最大值 if (!isIncludeMinNum) { minNum = minNum + 1; } if (isIncludeMaxNum) { maxNum = maxNum + 1; } #endregion if (isSame) { for (int i = 0; randomList.Count < ResultCount; i++) { nValue = rm.Next(minNum, maxNum); randomList.Add(nValue); } } else { for (int i = 0; randomList.Count < ResultCount; i++) { nValue = rm.Next(minNum, maxNum); //重复判断 if (!randomList.Contains(nValue)) { randomList.Add(nValue); } } } return randomList; }
正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!旁边有“推荐”二字,你就顺手把它点了吧,相得准,我分文不收;相不准,你也好回来找我!
希望能和在读此文的朋友们碰撞一些激情的火花,此公众号会不定时推送一些属于我们程序员的有用信息与优质内容,欢迎关注交流!
作者:施瓦小辛格
出处:http://www.cnblogs.com/wenyang-rio/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处:http://www.cnblogs.com/wenyang-rio/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。