PDA

View Full Version : نمایش تصادفی و رندوم محصولات با linq



sange_sabur
دوشنبه 14 اردیبهشت 1394, 21:12 عصر
درود

چطوری میشه انتخاب تصادفی ایجاد کرد با linq در asp?
میخام تو هر دفعه رفرش صفحه محصولات جدید نمایش داده بشه به صورت تصادفی
لطفا اساتید کمک کنند.

Fotofan
سه شنبه 15 اردیبهشت 1394, 00:55 صبح
سلام دوست گرامی.

توجه بکن که یکی از راههای ساده و اسان و کاربردی برای اینکار استفاده از دو متد skip و take هست. خب skip میگه در هر لحظه چند رکورد رو رد بشه و take هم میگه در هر لحظه چند رکورد رو برگردونه. توجه بکن که take رو بعد skip قرار بده.

راهکار:

اول تعداد کل رکورد هات رو برگردون و یک عدد تصادفی بین 0 تا اون عدد ایجاد بکن.(از کلاس Random استفاده بکن). بعد اون عدد تصادفی را منهای 1 بکن و داخل Skip قرار بده(اگه خود عدد 0 شد نباید منها بشه) و take هم همیشه برابر 1 باشه.

حالا چرا منهای یک. چون وقتی skip برابر 0 میشه و take هم 1 هست. میشه اولین رکورد.

امیدوارم فهمیده باشی. حوصله ی کد نویسی نداشتم وگرنه براتون سورس می فرستادم.....:لبخند:

sange_sabur
سه شنبه 15 اردیبهشت 1394, 10:43 صبح
نفهمیدم!!:افسرده::لبخند:
لطفا سورس بدید !!!

mahmood_4246
سه شنبه 15 اردیبهشت 1394, 14:32 عصر
از اين لينك ميتوني استفاده كني
چيزي كه دوستمون گفتن هم هست ولي اين راهكار بهتره
http://stackoverflow.com/questions/3173718/how-to-get-a-random-object-using-linq

Fotofan
سه شنبه 15 اردیبهشت 1394, 14:36 عصر
انم سورس. البته از یه اذایه استفاده کردم ولی کویری رو برات درست نوشتم..


130903

mahmood_4246
سه شنبه 15 اردیبهشت 1394, 16:06 عصر
انم سورس. البته از یه اذایه استفاده کردم ولی کویری رو برات درست نوشتم..


130903

اين كد بهتره

string[] Products = { "Product 1", "Product 2", "Product 3", "Product 4", "Product 5" };

Random rnd = new Random();


var q = Products.ElementAt(rnd.Next(1, Products.Count()));

Lbl_Name.Text = q.ToString();