0

こんにちは、私はすべての質問がランダムに来る小さなアプリケーションを開発しています。

デフォルトのrandom方法を使用してランダムなデータを取得しましたが、重複する行が 2 回表示されます。だから私が必要とするのは、データテーブルに個別の行を取得することです。

次の方法を使用してrendomレコードを取得しています...

 Random rDom = new Random();
 dtRandom = dt.Clone();
 int rw = 0;
 for (int ctr = 1; ctr <= dt.Rows.Count; ctr++)
 {
        rw = rDom.Next(1, dt.Rows.Count);
        dtRandom.ImportRow(dt.Rows[rw]);
 }
 dtRandom.AcceptChanges();

では、どうすれば datatable から個別のレコードを取得できますか?

4

2 に答える 2

1

ご存じのとおり、乱数生成では同じ数が複数回生成される場合があります。一意の代理キー/主キーがある場合は、データテーブルにインポートする前に、インポートされた行の存在を確認してください。それ以外の場合は、このアプローチを使用して、最終的な DataTable から個別の値を取得できます。

DataTable distinctTable = new DataView(dtRandom).ToTable(
  true, new string[] { "column1", "column2", "etc." });

http://msdn.microsoft.com/en-us/library/wec2b2e6.aspxから

于 2013-01-31T05:09:40.193 に答える
-3

Random同じオブジェクトを保持する必要があります。
静的メンバーとして静的メソッドの外に配置します

private static Random rand = new Random();

public static int rInt(int exclUB, int incLB = 0)
{
    int t = rand.Next(incLB, exclUB);
    return t;
}

詳細

乱数生成 - 同じ数が返される

于 2013-01-31T04:31:26.370 に答える