C# 获取数据表上的随机行
我想在C#中随机获得dataTable上的05行,信息如下: 我一直在使用该解决方案克隆属于其他dt并使用随机函数进行处理,但未能成功。请帮助我建议解决这个问题C# 获取数据表上的随机行,c#,random,C#,Random,我想在C#中随机获得dataTable上的05行,信息如下: 我一直在使用该解决方案克隆属于其他dt并使用随机函数进行处理,但未能成功。请帮助我建议解决这个问题 多谢各位 由于您尚未显示代码,我们无法修复它,但是: Random r = new Random(); var rowsTaken = new HashSet<int>(); DataTable rndTable = yourDataTable.Clone(); for(int i = 0; i < 5; i++)
多谢各位 由于您尚未显示代码,我们无法修复它,但是:
Random r = new Random();
var rowsTaken = new HashSet<int>();
DataTable rndTable = yourDataTable.Clone();
for(int i = 0; i < 5; i++)
{
int rndRowIndex = r.Next(yourDataTable.Rows.Count);
while(!rowsTaken.Add(rndRowIndex))
rndRowIndex = r.Next(yourDataTable.Rows.Count);
DataRow randomRow = yourDataTable.Rows[rndRowIndex];
rndTable.ImportRow(randomRow);
}
Random r=new Random();
var rowsTaken=newhashset();
DataTable rndTable=yourDataTable.Clone();
对于(int i=0;i<5;i++)
{
int rndRowIndex=r.Next(yourDataTable.Rows.Count);
而(!rowsTaken.Add(rndRowIndex))
rndRowIndex=r.Next(yourDataTable.Rows.Count);
DataRow randomRow=yourDataTable.Rows[rndRowIndex];
rndTable.ImportRow(随机行);
}
您可以选择一个介于0和行数之间的随机数,并在这两者之间进行平衡,这样的结果是不可能两次得到相同的数字的
DataTable dt = new DataTable()
Random rnd = new Random();
int row1= rnd.Next(0, dt.Count);
int row2= rnd.Next(0, row1-1);
int row3= rnd.Next(row2+1,row1-1);
....
你能行
dataTable.OrderBy(x=>Guid.NewGuid()).Take(5)
或
var random=new random()代码>
dataTable.OrderBy(x=>random.Next()).Take(5)
您尝试了什么,出现了什么问题?获取行数,获取一个介于0和此数字之间的随机数作为id,重复五次。只有在保证连续性的情况下才有效IDs@TimSchmelter我想如上所述从dataTable中随机获取05行,但没有成功。