Pages

2016/11/22

C#のショートサーキット評価でラムダ式の中のnullチェックを行う

nullチェック
C#6.0から導入されている null 条件演算子の新しい書き方が便利です。
null 許容型でデータを取ってくる場合などに、null 参照で落ちることを防ぐことができます。
// サンプルクラス
class Product 
{ 
 public decimal? Amount { get; set; } 
 public string Name { get; set; } 
 
} 
 
// どっかに記述
var products = new List(); 
products.Add(new Product() { Name = "ほげほげガム", Amount = 98, }); 
products.Add(new Product() { Name = "ほげほげガム・プレミアム", Amount = 298, }); 
products.Add(new Product() { Name = "ほげほげガム・サンプル", Amount = null, }); 
products.Add(null); 

// これだと null を参照して例外になる 
// var total = products.Sum(x => x.Amount); 
 
// total = 396 
var total = products.Sum(x => x?.Amount ?? 0); 
Related Posts Plugin for WordPress, Blogger...