假设我有一个包含~50行的DataTable(SharePoint中列表中的GetDataTable())。我想保留10个随机行并忘记其余的行。我怎样才能做到这一点?
提前致谢。
答案 0 :(得分:7)
你可以在DataTable上的行集合上使用Fisher / Yates shuffle(Skeet的implementation),然后选择前10行。
var random10 = dataTable.Rows.OfType<DataRow>().Shuffle(new Random()).Take(10);
答案 1 :(得分:1)
试试这个:
Random r = new Random();
while (dt.Rows.Count > 10)
{
int j = r.Next(0, dt.Rows.Count);
dt.Rows.RemoveAt(j);
}
答案 2 :(得分:0)
DataTable包含Rows
的属性DataRowCollection
。您可以使用索引访问每个行。
因此,您可以使用Random
获取随机数,并从myTable.Rows[myRandomIndex]
获取数据。
Random random = new Random();
int randomNumber = random.Next(0, 50);