چطور آیتم های یک لیست را در سی شارپ به صورت رندوم جابجا کنیم؟

mohsen1 سال قبل1 سال قبل
ارسال شده در
mohsen

ترتیب رندوم آیتم های یک لیست در سی شارپ به چند طریق ممکن است.

1. استفاده از GUID:

      var shuffledcards = cards.OrderBy(_ => Guid.NewGuid()).ToList();

    

2. جابجا کردن دو به دو اعضا به صورت رندوم:

      var rnd = new Random();
var list = new List<int> { ... };
shufflesCount = 10;
for (int i = 0; i < shufflesCount; i++) {
    var firstIndex = rnd.Next(list.Count);
    var nextIndex = firstIndex ;
    while(nextIndex == firstIndex && list.Count > 1) {
        nextIndex = rnd.Next(list.Count);
    }
    var temp = list[firstIndex];
    list[firstIndex] = list[nextIndex];
    list[nextIndex] = temp;
}
    
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!