質問

簡単な方法があるかどうかわかりませんが、基本的に私がやりたいことは次のとおりです:

var highlights = db.Banners.Where(h => h.Category == "highlight").ToList().GetRange(0,4);

このモデルにはいくつかのハイライトがあるバナーがありますが、毎回異なる順序でランダムなハイライトを4つだけ取得したいです。

したがって、使用しているコードは[0..4]の範囲をハイライトし、4未満の場合はエラーを返し、ランダム化されません。

どうすれば簡単にできるだろうか?

結果は、ビューに渡す List < Banner > ですが、毎回異なる注文の例:

[1,3,4,2] || [2,1,4,3] || [12,32,15,3]

それだと思います:)

どうもありがとう

役に立ちましたか?

解決

こちらは、コードプロジェクトでのランダムLINQサンプリングの例です

>

他のヒント

バナーをランダム化し、最初の4つ以下にするには、次のようにします。

Random r = new Random(DateTime.Now.Ticks);

var highlights = db.Banners.Where(h => h.Category == "highlight").
    OrderBy(h => r.Next()).Take(4)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top