Bu Post numaralı belgeyi bulduktan sonra List<T>
ürünündeki öğeleri karıştırırken iyi bir çözümü vardır. Shuffle() kullanarak bir Listede bir Rastgele SINGLE RECORD almanın bir yolu var mı? - C#
Person
vardır:
List<Person> workers = new List<Person>()
{
new Person { Id = 1, Name = "Emp 1", Position = "Cashier"},
new Person { Id = 2, Name = "Emp 2", Position = "Sales Clerk"},
new Person { Id = 3, Name = "Emp 3", Position = "Cashier"},
new Person { Id = 4, Name = "Emp 4", Position = "Sales Clerk"},
new Person { Id = 5, Name = "Emp 5", Position = "Sales Clerk"},
new Person { Id = 6, Name = "Emp 6", Position = "Cashier"},
new Person { Id = 7, Name = "Emp 7", Position = "Sales Clerk"}
};
Şimdi ben tüm kayıtları karıştırmak istiyorum: Bu benim uygulama ve kullanım
class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Position { get; set; }
}
olduğunu ve 1 Satış Memuru alın. İşte benim kodudur ve çalışıyor:
var worker = workers.OrderBy(x => Guid.NewGuid()).Where(x => x.Position == "Sales Clerk").First();
// This can yield 1 of this random result (Emp 2, Emp 4, Emp 5 and Emp 7).
Console.WriteLine(worker.Name);
Ama verilen Post GUID'ye göre kayıt rasgele olarak seçmek için iyi değil. Ve en kötüsü, Shuffle()
kullanamaz ve istenen sonucu almak için Where
ve First()
uzantılarını çağırıyorum.
Bunu Shuffle()
uzantısıyla nasıl yapabilirim?
'var işçisi = workers.Shuffle() Flirts (x => x.Position == "Satış Clerk");' –
Muhteşem.! Mükemmel cevap! –
@JacobSeleznev de teşekkürler! –