int temp;
string number = "";
int count = new_t_bll.GetNew_TCount();
IList<int> ilist = new List<int>(count);
for (int i = 0; i < count; i++)
{
ilist.Add(i);
}
Random ran = new Random((int)DateTime.Now.Ticks);
for (int i = 0; i < (ilist.Count - 4); i++)
{
temp = ran.Next(0, ilist.Count);
ilist.RemoveAt(temp);
}
想生成4个随机数,count是不固定的,是计算表总共几个分类。
自己的意思是通过随机0到分类总数生成一个i,然后在ilist移除i
可是这样要是有很多个分类的话会循环多次有没有直接计算0到count之内生成不同的4个随机数?
string number = "";
int count = new_t_bll.GetNew_TCount();
IList<int> ilist = new List<int>(count);
for (int i = 0; i < count; i++)
{
ilist.Add(i);
}
Random ran = new Random((int)DateTime.Now.Ticks);
for (int i = 0; i < (ilist.Count - 4); i++)
{
temp = ran.Next(0, ilist.Count);
ilist.RemoveAt(temp);
}
想生成4个随机数,count是不固定的,是计算表总共几个分类。
自己的意思是通过随机0到分类总数生成一个i,然后在ilist移除i
可是这样要是有很多个分类的话会循环多次有没有直接计算0到count之内生成不同的4个随机数?
解决方案 »
- 【请问这个页面刷新怎么做?】emp_Name.Value的值变化后,页面刷新一下
- 小弟想实现以下代码,麻烦各位帮忙看看谢谢!
- asp.net边框页面设计
- asp.net 验证码自己刷新类似discuz
- 类似新闻的前一页,后一页功能(就是取三条数据)
- 使用System.Net.Mail发送gmail邮件的问题
- 按照拼音首字母查人名怎么查?
- 能不能通过第几周得到这周的日期范围
- 求把数据源中的数据导入Excel中的实例!
- 用C#进行ASP.Net编程时碰到的web控件textbox的问题,请帮忙看一下.
- 如和往Global.aspx的Application_Error方法里传递参数?
- 将GridView的数据导入excel的同时加上标题并在标题下加时间段(急)
int temp;
string number = "";
int count = new_t_bll.GetNew_TCount();
IList<int> ilist = new List<int>(count);
for (int i = 0; i < count; i++)
{
ilist.Add(i);
}
Random ran = new Random((int)DateTime.Now.Ticks);
for (int i = ilist.Count; i > (ilist.Count - 4); i++)
{
temp = ran.Next(0, ilist.Count);
ilist.RemoveAt(temp);
}
for (int i = 0; i < (ilist.Count - 4); i++)
因为要取4个,所以总数减去4,然后循环removeat,这样就剩下4个了!
我郁闷,如果你的ilist.Count=10,你减去4等于多少?又循环多少? 所以上面给你的代码是可行的! 不信你试试!
for (int i = ilist.Count; i > (ilist.Count - 4); i++)
{
temp = ran.Next(0, ilist.Count);
ilist.RemoveAt(temp);
}我更郁闷!
你i都大于ilist.count了
还怎么ilist.removeat(temo)?
测试都不用测试,肯定直接抱错
var res = Enumerable.Range(0, count - 1).OrderBy(c=>Guid.NewGuid()).Take(4);
循环四次好解决,ilist.Count利用一个变量存储,例如: int temp;
string number = "";
int count = new_t_bll.GetNew_TCount();
IList<int> ilist = new List<int>(count);
for (int i = 0; i < count; i++)
{
ilist.Add(i);
}
Random ran = new Random((int)DateTime.Now.Ticks);
int ilistCount=ilist.Count;
for (int i = ilistCount; i > (ilistCount - 4); i--)
{
temp = ran.Next(0, ilist.Count);
ilist.RemoveAt(temp);
}
var result=Enumerable.Range(0, count - 1).Select(i => rand.Next()).Take(4);