びったんびったん

ユーザビリティ・プログラミングについて。

プリミティブ型や構造体の FirstOrDefault

とてもよい本でした。
C#ショートコードプログラミング第2版 【▲→川俣晶の縁側→技術関連執筆情報】

この本に null 許容型を使えばプリミティブ型のデフォルトと区別をつけられるよーって書いてありました。

var v = (new int?[] { 1, 2, 3 }).FirstOrDefault(p => p == 0);
if(v == null) {
} else {
    // v にごにょ
}

そんな都合よく null 許容型に変えられるわけないでしょ(笑
どちらも一長一短ありますが私ならこうします。

var v = (new int[] { 1, 2, 3 }).Where(p => p == 0);
if(v.Count() == 0) {
} else {
    // v.First() にごにょ
}

LINQ というか関数型大好きマンになってしまった。もう少し純粋度の高い関数型で大きなプログラム書きたい。