答案 0 :(得分:1)
由于您没有显示您的代码,我们无法修复它,但是:
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);
}
答案 1 :(得分:0)
你可以在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);
....
答案 2 :(得分:0)
你可以
dataTable.OrderBy(x => Guid.NewGuid()).Take(5)
或
var random = new Random();
dataTable.OrderBy(x => random.Next()).Take(5)