如何从DataTable中提取10个随机行?

假设我有一个大约50行的DataTable(SharePoint中的列表上的GetDataTable())。 我想保留10个随机行并忘记其余的行。 我怎样才能做到这一点?

提前致谢。

您可以对DataTable上的行集合使用Fisher / Yates shuffle(由Skeet 实现 ),然后选择前10个。

var random10 = dataTable.Rows.OfType().Shuffle(new Random()).Take(10); 

试试这个:

  Random r = new Random(); while (dt.Rows.Count > 10) { int j = r.Next(0, dt.Rows.Count); dt.Rows.RemoveAt(j); } 

DataTable包含属性Rows ,它是DataRowCollection 。 您可以使用索引访问每个行。

因此,您可以使用Random获取随机数,并从myTable.Rows[myRandomIndex]获取数据。

 Random random = new Random(); int randomNumber = random.Next(0, 50);