【发布时间】:2011-10-18 02:12:14
【问题描述】:
假设我有一个大约 50 行的 DataTable(SharePoint 中的列表上的 GetDataTable())。我想保留 10 个随机行而忘记其余的。我怎样才能做到这一点?
提前致谢。
【问题讨论】:
标签: c#
假设我有一个大约 50 行的 DataTable(SharePoint 中的列表上的 GetDataTable())。我想保留 10 个随机行而忘记其余的。我怎样才能做到这一点?
提前致谢。
【问题讨论】:
标签: c#
您可以对 DataTable 上的行集合使用 Fisher/Yates shuffle(implementation by Skeet),然后选择前 10 个。
var random10 = dataTable.Rows.OfType<DataRow>().Shuffle(new Random()).Take(10);
【讨论】:
using CustomExtensions;。
DataTable 包含属性Rows,即DataRowCollection。您可以使用索引访问这些行中的每一行。
所以你可以用Random获取随机数,并从myTable.Rows[myRandomIndex]获取数据。
Random random = new Random();
int randomNumber = random.Next(0, 50);
【讨论】:
试试这个:
Random r = new Random();
while (dt.Rows.Count > 10)
{
int j = r.Next(0, dt.Rows.Count);
dt.Rows.RemoveAt(j);
}
【讨论】: