/// <summary>
/// 得到随机抽取重组DataTable
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="randomNum">抽取数量,0返回原数据</param>
/// <returns></returns>
public static DataTable GetRandomDataTable(DataTable dt, int randomNum)
{
if(randomNum == 0)
{
return dt;
}
int[] array = RandomArray(0, dt.Rows.Count-1);
DataTable newDt = dt.Copy();
newDt.Rows.Clear();
for (int k = 0; k < randomNum; k++)
{
newDt.ImportRow(dt.Rows[array[k]]);
}
return newDt;
}
/// <summary>
/// 得到非重复的随机数组
/// </summary>
/// <param name="small">小数</param>
/// <param name="large">大数</param>
/// <returns></returns>
private static int[] RandomArray(int small, int large)
{
int x = 0, tmp = 0;
if (small > large)
{
tmp = small;
small = large;
large = tmp;
}
int[] array = new int[large - small + 1];
for (int i = small; i <= large; i++)
{
array[i - small] = i;
}
Random random = new Random(unchecked((int)DateTime.Now.Ticks));
for (int i = array.Length - 1; i > 0; i--)
{
x = random.Next(0, i + 1);
tmp = array[i];
array[i] = array[x];
array[x] = tmp;
}
return array;
}
随机菜单算个小玩具