İ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.
(Resim: King/stock.adobe.com)
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.");
}
}

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

Bir yanıt yazın