.NET 10.0'daki yenilikler [26]: OrderedDictionary sınıfındaki ek aşırı yükler

kapanış bildirimi

Bu makale İngilizce olarak da mevcuttur. Teknik yardımla tercüme edildi ve yayınlanmadan önce editoryal olarak gözden geçirildi.

İlk kez .NET 9.0'da tanıtılan genel sınıf System.Collections.Generic.OrderedDictionary<T,T> zaten bir yöntem önerdim TryAdd()bir öğe eklemeye çalışıyorum. Mevcut versiyona ek olarak TryAdd(TKey key, TValue value) .NET 10.0'da artık üç parametreli bir yöntem de var TryAdd(TKey key, TValue value, out int index). Bu yeni aşırı yükleme, öğe kümede zaten mevcutsa üçüncü parametredeki dizini döndürür.

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.

Bunun için benzer bir yöntem var TryGetValue() artık sadece bir girişin değerini değil, aynı zamanda bulunan öğenin konumunu da indeks yoluyla döndüren yeni bir aşırı yük.

.NET 11

Bu, .NET 11.0'daki bir yeniliktir: Dr. Holger Schwichtenberg ve diğer uzmanlar, 17 Kasım 2026'da BetterCode() .NET 11.0 çevrimiçi konferansında .NET SDK, C# 15.0 ve daha fazlasındaki geliştiriciler için değişiklikleri sunacaklar. Program yayına girene kadar indirimli kör kuş biletleri mevcuttur.

Aşağıdaki örnek kod kullanıldı TryAdd(TKey key, TValue value, out int index) sınıfta OrderedDictionary:


public void Run()
{
 CUI.Demo("OrderedDictionary<T,T>: TryAdd() mit Index and TryGetValue()");

 OrderedDictionary<string, string> websites = new();
 websites.Add("Haberler", "Haber");
 websites.Add("Software & Support", "www.entwickler.de");
 websites.Add("IT-Visions", "www.IT-Visions.de");
 websites.Add("Microsoft", "www.Microsoft.com");

 var key = "IT-Visions";
 var value = "www.IT-Visions.de";

 foreach (var item in websites)
 {
  CUI.OL(item.Key + " -> " + item.Value);
 }

 CUI.BR();

 // --- ALT: TryGetValue() mit 2 Parametern
 if (websites.TryGetValue(key, out string? value1))
 {
  int index3 = websites.IndexOf(key); // Nochmals nachschauen nach der Position
  CUI.Success($"Element {value1} wurde gefunden an der Position {index3}.");
 }

 // --- NEUE Überladung bei TryGetValue() mit Parameter index
 if (websites.TryGetValue(key, out string? value4, out int index4))
 {
  CUI.Success($"Element {value1} wurde gefunden an der Position {index4}.");
 }

 // --- ALT: TryAdd() mit 2 Parametern
 if (!websites.TryAdd(key, value))
 {
  int index1 = websites.IndexOf(key); // Nochmals nachschauen nach der Position
  CUI.Warning($"Element {value} ist bereits vorhanden an der Position {index1}!");
 }
 else
 {
  CUI.Success($"Element {value} wurde hinzugefügt.");
 }

 // --- NEUE Überladung von TryAdd() liefert jetzt auch den Index (Position) zurück
 if (!websites.TryAdd(key, value, out int index2))
 {
  CUI.Warning($"Element {value} ist bereits vorhanden an der Position {index2}!");
 }
 else
 {
  CUI.Success($"Element {value} wurde hinzugefügt.");
 }
}

Ekran görüntüsü

Ekran görüntüsü

Örnek kod çıkışı (Şekil 1)


(Ben)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

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