Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

สุ่มลำดับสตริงใน C#

ใช้ OrderBy ร่วมกับ Random เพื่อสับเปลี่ยนลำดับอักขระในสตริง (Shuffle)

ตัวอย่างโค้ด

using System;
using System.Linq;

class Demo
{
    static void Main()
    {
        const string str = "electronics";
        Random r = new Random();
        
        // สุ่มลำดับ: ใช้ Random เลือก true/false สลับกัน
        string random = new string(str.ToCharArray()
            .OrderBy(s => (r.Next(2) % 2) == 0)
            .ToArray());
        
        Console.WriteLine("String = {0}", str);
        Console.WriteLine("Random String = {0}", random);
    }
}

ผลลัพธ์ (ตัวอย่าง)

String = electronics
Random String = lericsecton

หมายเหตุ: วิธีนี้ไม่ใช่ Fisher-Yates Shuffle ที่สมบูรณ์ (อาจมี Bias) สำหรับการสุ่มจริง ควรใช้ Algorithm Shuffle มาตรฐาน