4

Linq を使用してリストから 2 つのランダムなレコードを取得するにはどうすればよいですか?

4

5 に答える 5

3
Random rnd = new Random();
var sequence = Enumerable.Range(1, 2).Select(n => lst[rnd.Next(0, lst.Count)]).ToList();
于 2012-04-09T03:51:36.030 に答える
2

直接的な方法はありません。きれいではありませんが、これを試すことができます。

int randomRecord = new Random().Next() % List.Count(); //To make sure its valid index in list
var qData = List.Skip(randomRecord).Take(1); 
var qValue = qData.ToList().First(); 
于 2012-04-09T03:46:19.640 に答える
-1

なぜLinqを使用して2つのランダムレコードを取得したいのですか?

ランダムインスタンスを作成し、値がリストの長さよりも小さい2つの乱数を取得します。

ListにはIndexerプロパティがあるため、List[index]を実行してもコストはかかりません。

シンプルにしてください。常に読みやすさを優先します。物事を複雑にするだけでは、コードを保守しようとしているプログラマーは苦労するでしょう。

なぜLinqでこれを実行したいのか知りたいのですが。それは私にはオーバーヘッドのように思えます。

私は何かが足りないのですか?

于 2012-04-09T03:59:09.847 に答える