Linq を使用してリストから 2 つのランダムなレコードを取得するにはどうすればよいですか?
1436 次
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 に答える