C# インデクサーの基本構文から、文字列キー・オーバーロード・多次元・インターフェース定義まで、サンプルコードで分かりやすく解説します。
C# ジェネリックの型制約 where T : struct / class / new() / 基底クラス / インターフェース の意味と使い分けを、コード例と典型ユースケースで分かりやすく解説します。
ReadOnlyObservableCollection<T> が ObservableCollection<T> をラップして読み取り専用ビューを提供する仕組み、サポートするインターフェース、MVVM での公開パターン、ReadOnlyCollection<T> との違いを整理します。
ObservableCollection<T> の変更通知の仕組み、INotifyCollectionChanged/INotifyPropertyChanged、CollectionChanged のアクション種別、WPF/MAUI でのバインディング用途、UI スレッド制約と注意点を整理します。
Stack<T> の動的配列実装、サポートするジェネリックインターフェース、TryPop/TryPeek 等の安全 API、非ジェネリック Stack や ConcurrentStack<T> との比較、DFS・Undo・式評価など使いどころを整理します。
SortedSet<T> の赤黒木による内部構造、サポートするジェネリックインターフェース、O(log n) の計算量、GetViewBetween による範囲ビュー、HashSet<T> との比較、ランキング・範囲検索の使いどころを整理します。
SortedDictionary<TK,TV> の赤黒木による内部構造、サポートするジェネリックインターフェース、O(log n) の計算量、IComparer<TKey>、Dictionary/SortedList との比較と選び分けを整理します。
Queue<T> の循環バッファ実装、サポートするジェネリックインターフェース、TryDequeue/TryPeek 等の安全 API、非ジェネリック Queue や ConcurrentQueue<T>/Channel<T> との比較、BFS など使いどころを整理します。
List<T> の動的配列構造と容量倍々拡張、サポートするジェネリックインターフェース、各操作の計算量、Capacity 管理、Span/CollectionsMarshal による高効率アクセス、配列や LinkedList<T> との比較を整理します。
LinkedList<T> の双方向連結リスト構造、サポートするジェネリックインターフェース、LinkedListNode<T> 経由の O(1) 挿入・削除、List<T> との比較、LRU キャッシュ等の使いどころを整理します。