12

x 人のユーザーを含むデータベースがあり、すべてのユーザーをランダムに取得してから、サイトに 50 人のユーザーを書き込みたいと考えています。現在、私は.take(50)最新の 50 ユーザーのみを使用して取得しています。テーブル全体からランダムに 50 をシャッフルしたいのですが、何かアイデアはありますか?

これは私のコードが今のように見えるものです:

userList = userList.OrderBy(user => -user.ID).Take(userCount).ToList();

注: userlistすべてのユーザーの私のリストです。ご覧のとおり、私は現在、リストするユーザーの数を指定する userCount という変数でラムダを使用しています!

4

5 に答える 5

28

これを試して

Random rnd = new Random();
userList = userList.OrderBy(user => rnd.Next()).Take(usercount).ToList();
于 2013-10-16T08:22:18.687 に答える
0

ランダムなしの拡張

public static class MyExtensions
{
    public static IEnumerable<T> GetRandomItems<T>(this IEnumerable<T> source, Int32 count)
    {
        return source.OrderBy(s => Guid.NewGuid()).Take(count);
    }
}

そして今、あなたはできる

userList = userList.GetRandomItems().ToList();
于 2016-09-13T13:18:26.080 に答える