Avatar ·

كيفية خلط عناصر قائمة 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]; // هذا فقط ينسخ القيمة، بدلاً من تبديلها } ``` أفهم أن هذا الكود خاطئ — أنا أفقد قيم العناصر بدلاً من تبديلها. أرجو إرشادي إلى الطريقة الصحيحة لخلط القائمة؟ ويفضل أن تكون بسيطة وفعالة. شكراً! *ملاحظة: سمعت عن خوارزمية فيشر-ييتس، لكنني لست متأكداً.*