ASP.NET MVC - كيفية الحصول على سجلات عشوائية من النموذج؟
-
08-07-2019 - |
سؤال
لا أعرف ما إذا كانت هناك طريقة سهلة للقيام بذلك ، لكن ما أود القيام به هو:
var highlights = db.Banners.Where(h => h.Category == "highlight").ToList().GetRange(0,4);
لدي هذه اللافتات النموذجية حيث لدي بعض النقاط البارزة ، لكنني أود استرداد 4 أبرز عشوائي فقط في كل مرة في ترتيب مختلف.
لذا فإن الكود الذي أستخدمه فقط استرداد نطاق من [0..4] أبرز ما ، وإذا كان لديك أقل من 4 ، فإنه يعيد خطأً ، ولم تكن عشوائية.
أي أفكار حول كيف يمكنني فعل ذلك بسهولة؟
النتيجة التي أود الحصول عليها هي قائمة<
لافتة>
لتمريره إلى العرض ولكن في كل مرة بترتيب مختلف مثل:
[1,3,4,2] || [2,1,4,3] || [12,32,15,3]
وأعتقد أن كل شيء :)
شكرًا جزيلاً
المحلول
هنا هو مثال على أخذ عينات عشوائية LINQ على codeproject
نصائح أخرى
لإضفاء الطابع عشوائي على لافتات والحصول على أربعة أو أقل يمكنك القيام بذلك:
Random r = new Random(DateTime.Now.Ticks);
var highlights = db.Banners.Where(h => h.Category == "highlight").
OrderBy(h => r.Next()).Take(4)
لا تنتمي إلى StackOverflow