如何从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);