كيفية خلط عناصر قائمة List<T> عشوائياً في C#؟
مرحباً بالجميع! أنا مطور C# مبتدئ، وواجهت مشكلة. أحتاج إلى خلط العناصر في قائمة `List` عشوائياً. أقوم بتطوير تطبيق للعبة ورق، وأحتاج إلى خلط مجموعة الأوراق.
لدي قائمة `List deck` أقوم بتعبئتها بالأوراق. حاولت استخدام `Random`، لكنني لم أتمكن من خلط العناصر بشكل صحيح.
إليك الكود الحالي الخاص بي:
```csharp
List numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Random rnd = new Random();
// محاولتي للخلط
for (int i = 0; i < numbers.Count; i++)
{
int randomIndex = rnd.Next(numbers.Count);
numbers[i] = numbers[randomIndex]; // هذا فقط ينسخ القيمة، بدلاً من تبديلها
}
```
أفهم أن هذا الكود خاطئ — أنا أفقد قيم العناصر بدلاً من تبديلها. أرجو إرشادي إلى الطريقة الصحيحة لخلط القائمة؟ ويفضل أن تكون بسيطة وفعالة. شكراً!
*ملاحظة: سمعت عن خوارزمية فيشر-ييتس، لكنني لست متأكداً.*