讓我們先從一個簡單的例子類:嵌入在一個單一的LINQ表達式零測試
public class Foo
{
public DateTime Date { get; set; }
public decimal Price { get; set; }
}
然後創建一個列表:
List<Foo> foos = new List<Foo>;
我想返回格式化的價格或「 N/A」的基礎上的日期列表的一個項目,這麼比如我可以這樣寫:
Foo foo = foos.FirstOrDefault(f => f.Date == DateTime.Today);
string s = (foo != null) ? foo.Price.ToString("0.00") : "N/A";
我會LIK e將上述兩行合併像如下:
string s = foos.FirstOrDefault(f => f.Date == DateTime.Today).Price.ToString("0.00") ?? "N/A";
然而,這並沒有達到我想要的,因爲如果(f => f.Date == DateTime.Today)
不返回一個Foo然後NullReferenceException
被拋出。
因此,是否有可能用LINQ創建1條語句來返回格式化的價格或「N/A」?
這個作品,但阿隆忘記了()後ToString –
@MikeCheel:修正,謝謝。 –
完全是我以後 - 謝謝你。 –