我正在使用c#中的lambda表達式。我試圖根據類型選擇一個值,然後對結果進行求和。查詢的Lambda表達式根據條件選擇不同的值
var length = (from al in tmp
from n in al
where n.TripPath.DataType =="type1" || n.tripPath.DataType == "Type2"
select n.trippath.length).sum();
這工作得很好,但我的問題是我需要總結之前,對於其他類型的瓦萊斯設置爲defalute值爲0,類似於
List<double> ActualLength = new List<double>();
if(n.TripPath.DataType =="type1" || n.tripPath.DataType == "Type2")
ActualLength.Add(n.trippath.length)
else
ActualLength.Add(0);
return ActualLength.sum();
請使用所提供的語言或工具標記問題。沒有人知道C#並且正在查看C#標籤會知道這個問題存在。 – 2010-11-15 08:18:15
爲什麼你需要將它設置爲0?如果過濾它們的地方,它們被排除在選擇之外而不包括在總和中。這與設置爲0的效果相同。 – 2010-11-15 08:24:19
Pieter是正確的。另外一點是'Enumerable.Empty().Sum()'或類似的是'0'。這2點使附加過濾器變得冗餘。 –
Ani
2010-11-15 08:31:01