Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
10 yazı bulundu #collections
C# 13–14 ve .NET 9–10: OrderedDictionary, params Collections ve Fazlası
Backend SERİ 11

C# 13–14 ve .NET 9–10: OrderedDictionary, params Collections ve Fazlası

Dictionary'nin sıra sözü vermemesi ve .NET 9'un generic OrderedDictionary'si, .NET 10'un index döndüren TryAdd/TryGetValue'su, PriorityQueue.Remove, string ayırmadan alternate lookup, C# 13 params collections ve C# 14 extension members ile span dönüşümleri.

7 Kas 2026 11 dk 3
C# 11–12 ve .NET 7–8: Generic Math, Frozen ve Collection Expressions
Backend SERİ 10

C# 11–12 ve .NET 7–8: Generic Math, Frozen ve Collection Expressions

C# 10'da yazılamayan generic toplama, static abstract member'lar ve INumber<T> ile generic math; bir kez kurulup çok okunan FrozenDictionary ve FrozenSet'in BenchmarkDotNet ölçümü; köşeli parantezli collection expression'lar, spread ve CollectionBuilder.

7 Kas 2026 12 dk 5
C# Generic Variance: Covariance ve Contravariance (in ve out)
Backend SERİ 09

C# Generic Variance: Covariance ve Contravariance (in ve out)

List<EBook> neden List<Book> olamaz ama IEnumerable<Book> olabilir? Array covariance'ın deliği, out ile covariance, in ile contravariance, delegate'lerde variance, kuralların sınırları ve CS0266'nın önerdiği cast tuzağı.

7 Kas 2026 10 dk 4
C# Immutable Collection'lar ve Doğru Collection'ı Seçmek
Backend SERİ 08

C# Immutable Collection'lar ve Doğru Collection'ı Seçmek

Read-only view ile gerçek immutability farkı, ImmutableList'in structural sharing'i, builder'lar, ImmutableArray ile ImmutableList'in BenchmarkDotNet ile ölçülen farkı ve karmaşıklık haritasıyla doğru collection'ı seçmek.

7 Kas 2026 11 dk 5
C# Collection Interface'leri: IEnumerable, ICollection, IList ve yield return
Backend SERİ 07

C# Collection Interface'leri: IEnumerable, ICollection, IList ve yield return

IEnumerable, ICollection, IList ve IReadOnly* interface'leri neyi vaat eder, neyi etmez; array'in Add'de neden patladığı, iç listeyi güvenle dışarı açmak, parametre tipi seçmek ve yield return ile lazy iterator'ler yazmak.

7 Kas 2026 11 dk 3
C# Sıralı Collection'lar: SortedList, SortedDictionary, SortedSet ve IComparer
Backend SERİ 06

C# Sıralı Collection'lar: SortedList, SortedDictionary, SortedSet ve IComparer

Comparer sıfır döndürünce SortedSet'ten sessizce kaybolan kitap ve eşitlik bozucu ikinci kriter. Red-black tree üzerindeki SortedDictionary, iki sıralı array'li SortedList ve hangisinin ne zaman seçileceği; SortedSet ile Min, Max ve canlı GetViewBetween; IComparer, kültüre duyarlı string sırası ve bozuk comparer tuzakları.

7 Kas 2026 8 dk 5
C# Queue, Stack, LinkedList ve PriorityQueue: Sırayla Çalışan Collection'lar
Backend SERİ 05

C# Queue, Stack, LinkedList ve PriorityQueue: Sırayla Çalışan Collection'lar

FIFO için Queue<T>, LIFO ve geri alma için Stack<T>, node'larla O(1) ekleme ve silme için LinkedList<T>, LinkedList ve Dictionary ile küçük bir LRU cache. .NET 6 PriorityQueue: UnorderedItems neden sırasız, eşit önceliklerde stable olmaması, sıra numarasıyla adil queue ve EnqueueDequeue ile en pahalı N kitap.

7 Kas 2026 8 dk 6
C# Dictionary ve HashSet: TryGetValue, Key Eşitliği ve Comparer
Backend SERİ 04

C# Dictionary ve HashSet: TryGetValue, Key Eşitliği ve Comparer

Dictionary bir key'i GetHashCode ve Equals ile nasıl bulur, eşitliği olmayan class key neden dictionary'yi şişirir. Add, indexer, TryAdd, TryGetValue farkları, .NET 6 CollectionsMarshal ile tek aramada sayma, değişen key tuzağı, OrdinalIgnoreCase ve Türkçe I tuzağı, sıra garantisi ve HashSet set işlemleri.

7 Kas 2026 8 dk 2
C# List<T> Rehberi: Ekleme, Silme, Capacity, Sıralama ve Arama
Backend SERİ 03

C# List<T> Rehberi: Ekleme, Silme, Capacity, Sıralama ve Arama

Döngüde silerken atlanan element'ler ve 'Collection was modified' hatası, RemoveAll ile doğru silme. İçerideki array, Capacity'nin 4-8-16-32 diye büyümesi ve EnsureCapacity; Add, Insert, Remove ve eşitlik, Find ailesi, Sort, BinarySearch ve Sort'un stable olmaması.

7 Kas 2026 9 dk 6
C# Generics Neden Var: ArrayList, Boxing ve Tip Güvenliği
Backend SERİ 01

C# Generics Neden Var: ArrayList, Boxing ve Tip Güvenliği

ArrayList'in her şeyi object olarak saklamasının bedeli: runtime'a kayan InvalidCastException, value type'larda boxing ve sekiz kat bellek. List<T> ile tip güvenliği, runtime'ın generic tipleri nasıl gördüğü ve eski collection'ları OfType/Cast ile generic dünyaya taşımak.

7 Kas 2026 8 dk 3
Blog Haritası