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

use*_*685 8 c#

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

提前致谢.

tva*_*son 7

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

var random10 = dataTable.Rows.OfType<DataRow>().Shuffle(new Random()).Take(10);
Run Code Online (Sandbox Code Playgroud)