C#
イディオム1: Where(x => x != null)でNullを弾く
出典: C# Linq で Null を回避する書き方とパフォーマンス(業務SEのコピペで動くやつ) — イディオム1: Where(x => x != null)でNullを弾く
// ✅ WhereでNull排除
var names = users
.Where(u => u != null)
.Select(u => u.Name)
.ToList();
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「イディオム1: Where(x => x != null)でNullを弾く」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
5 件// ✅ OfTypeでNull排除+型絞り込み object[] mixed = { "alice", null, 42, "bob", null, "carol" }; var strings = mixed.OfType<string>().ToList(); // → ["alice", "bob", "carol"]未収録
イディオム2: OfType<T>()でNull +型絞り込みを同時にやる
#14f9efe17681
// ✅ DefaultIfEmptyで空シーケンス時のフォールバック var prices = invoices .Where(i => i.Region == "東京") .Select(i => i.Amount)未収録
イディオム3: DefaultIfEmpty()で空シーケンス時のフォールバック
#c690c2cc9141
// ✅ Field<T> + ??でNull補完 var names = dt.AsEnumerable() .Select(r => r.Field<string>("name")?? "(unknown)") .ToList();未収録
イディオム4: ??演算子でField<T>()のNullを補完
#12c62cae638e
// ✅ ?.連鎖でNull中継 var firstItemName = order?.Items?.FirstOrDefault()?.Name ?? "(no item)"; // Linqとの組み合わせ未収録
イディオム5: ?.連鎖でnull中継を許容する
#8f2d66c1e375
// ✅ 10万件のホットパスでLinq → forに書き換え // Linq版(800ms前後) var sumLinq = items .Where(i => i != null && i.Price > 0)未収録
パフォーマンス: 10万件規模でLinq vs forループ
#0055f5f685f4
