.NET 10.0'daki yenilikler [25]: Yeni LINQ Shuffle() operatörü

Shuffle() belirli bir nesne kümesini rastgele karıştırır. Yeni operatör Shuffle() başlangıç ​​miktarını değiştirmez ancak karışık sonucu şu şekilde döndürür: IEnumerable<T> Geriye. Ayrıntılar ilgili GitHub sayısında bulunabilir.

Duyurudan sonra devamını okuyun

Dr. Holger Schwichtenberg, 53 tanınmış uzmanıyla çok sayıda orta ve büyük ölçekli şirketi danışmanlık, eğitim ve yazılım geliştirme yoluyla destekleyen www.IT-Visions.de uzman ağının teknik direktörüdür. Çok sayıda ulusal ve uluslararası konferansa katılımı, 90'dan fazla uzmanlık kitabı ve 1.500'den fazla uzmanlık makalesi sayesinde Holger Schwichtenberg, .NET ve web teknolojileri konusunda Almanya'nın en tanınmış uzmanlarından biridir.

Shuffle() kaputun altındaki sınıfı kullan System.Random. Daha sonra rastgeleleştirme, kriptografik olarak güvenli olmayan bir rastgele sayı üreteci kullanılarak yapılır.

Aşağıdaki kod yeni komutu kullanır Shuffle():


public void Shuffle()
{
 CUI.Demo();
 
 CUI.H2("Zufällige Mischung der Liste der Zahlen von 1 bis 20");
 // Erzeuge eine Liste mit den Zahlen von 1 bis 20
 var numbers = Enumerable.Range(1, 20).ToList();
 CUI.H3("Ausgangslage");
 // Gib die Zahlen aus
 Console.WriteLine(string.Join(", ", numbers));
 
 CUI.H3("Shuffle()");
 var numbersShuffled = numbers.Shuffle();
 // Gib die Zahlen aus
 Console.WriteLine(string.Join(", ", numbersShuffled));
 
 CUI.H2("Zufällige Mischung der der Wörter in einem Satz");
 var satz = "Geld macht nicht glücklich";
 List<string> words = satz.Split(" ").ToList();
 
 CUI.H3("Ausgangslage");
 Console.WriteLine(string.Join(" ", words));
 CUI.H3("Shuffle()");
 IEnumerable<string> wordsShuffled = words.Shuffle();
 Console.WriteLine(string.Join(" ", wordsShuffled));
}

Ekran görüntüsü

Ekran görüntüsü

Kod örneği çıktısı (Şekil 1)

Shuffle() ancak yalnızca LINQ-to-Objects ile RAM'de çalışır. Entity Framework Core'da SQL'e çeviri yoktur. Ancak bu mümkün Shuffle() Entity Framework Core tarafından gerçekleştirilmiş olsa bile RAM'de ayarlanan bir nesneye uygulamak için:

Duyurudan sonra devamını okuyun


// var flights = ctx.Flights.Where(x => x.Departure == "Berlin").Shuffle().ToList(); // "The LINQ expression ould not be translated. Additional information: 'Shuffle' could not be translated".
var flights = ctx.Flights.Where(x => x.Departure == "Berlin").ToList();
var flightsShuffled = flights.Shuffle();


(Ben)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir