2011-05-16 70 views
2

我有一些問題,我的C#中,他們不喜歡它,但我的例子比比皆是代碼不知何故,我要去得到一些錯誤C#組由不起作用

編譯器說在g.Datum他不」知道基準

,並在 「返回查詢」,他說 - cannot convert,有一個明確的轉換

 var query = (from p in dataContext.Untersuchungen 
        orderby p.Datum 
        group p by p.Datum into g 
        let number = (from n in dataContext.Untersuchungen 
           where n.Datum == g.Datum 
           select n).Count() 
        select new StatsistikObjekt() { Date1 = g.Datum, number1 = number }); 
     return query; 

希望你能幫助我=)

+0

非常有趣;我從來不知道你甚至可以在linq查詢中使用'let'。幾乎看起來像是C#和F#的混合體= D – Tejs 2011-05-16 15:04:01

+0

g.Datum應該是g.Key,我相信。 – 2011-05-16 15:04:26

回答

1

嘗試

g.Key代替g.Datum

7

類型變量g範圍是,這的確不具有Datum值。

var query = (from p in dataContext.Untersuchungen 
      orderby p.Datum 
      group p by p.Datum into g 
      select new StatsistikObjekt() { Date1 = g.Key, 
              number1 = g.Count() }); 

至於返回值:通過只是算組的大小,使您的查詢簡單太 -

您可以輕鬆地修復一下,給您的分組(使用Datum爲重點) - 我們無法真正幫助你,因爲我們不知道你想要返回的返回類型。

+0

通過寫我的答案,我意識到我已經被偉大的Jon Skeet提升了一半。有一天,好的先生,有一天。 – Tim 2011-05-16 15:06:17

+0

@Tim:只要寫下你自己的答案,並將其與Jon的超級真棒超快速答案進行比較。實踐使得完美。發呆時你不會變得更好。此外,有人可能會喜歡你的答案。 – 2011-05-16 15:11:03

+0

@Tim我把它叫做「skeet'd」。繼續嘗試。你可能會很幸運,並最終得到像這樣的http://i.imgur.com/GLcaM.png。當前得分;我:1 Skeet:2000+ – 2011-05-16 15:15:22