2012-10-02 63 views
0

列數我有以下的樣品列LINQ需要獲得具有價值

ID Comment Analyzer Incubator Deanalyzer 
-- ------- ------- --------- ---------- 
23 Need Fast 5.6     8.7 

我需要做的是顯示結果是ID,評論,那麼的 計數多少列有值。所以在這種情況下,只有分析儀和Deanalyzer纔有數值,因此計數爲2。這是我到目前爲止有:

var result = from tb in db.Reports 
    where tb.Id == 23 
    select new { ID = tb.ID, 
       Comments = tb.Comments, 
       Count = .. 

       } 

回答

1

這是不乾淨的,但你可以這樣做:

var result = from tb in db.Reports 
where tb.Id == 23 
select new { ID = tb.ID, 
      Comments = tb.Comments, 
      Count = (tb.Analyzer!= null ? 1 : 0) + (tb.Incubator != null ? 1 : 0) + (tb.Deanalyzer!= null ? 1 : 0) 

      } 

如果你有很多的列我不會用這一點。

+0

謝謝。你將如何處理大量的列,因爲我有大約30列 –

+0

只要你格式化的代碼,所以它是可管理的,沒有成千上萬的行。 –