2010-04-23 60 views
12
 var stuff = ctx.spReport(); 
     var StuffAssembled = new List<ReportCLS>(); 
     var val = new List<ReportCLS>(); 
     foreach (var item in stuff) 
     { 
      StuffAssembled.Add(new ReportCLS(item)); 

     } 

     val.Add(StuffAssembled.First()); 

不斷拋出通用列表。首先不工作LINQ

System.Collections.Generic.List「不包含一個定義‘第一’和沒有擴展方法‘第一個’接受類型的第一參數」 System.Collections.Generic.List'可能被發現(你是否缺少使用指令或程序集引用?)

出了什麼問題?

此外我該如何解決?

感謝

回答

39

你應該添加到您的using聲明:

using System.Linq; 
+1

這就是它...... Intellisense並不建議我加它。我一直在看(System.Data.Linq),並認爲我很好。 – MarkKGreenway 2010-04-23 19:42:24

6

有幾件事情要檢查:

  • 您要針對.NET 3.5或更高版本(或者你」重新使用LINQBridge)
  • 您可以參考System.Core程序集
  • 你有using指令System.Linq

基本上什麼錯誤信息顯示...

編輯:另外,您目前的代碼可能是簡單了很多:

var stuff = ctx.spReport(); 
var stuffAssembled = stuff.Select(x => new ReportCLS(x)).ToList(); 
var val = new List<ReportCLS> { stuffAssembled.First() }; 

而且,如果你是實際上使用List<T>那麼你可能也只是使用list[0]而不是list.First() :)如果列表爲空,兩者都會拋出異常,雖然異常將diff呃,當然。

1

此編譯時間錯誤通常發生在你

  • 忘了包括用於擴展LINQ(使用System.Linq的)進口
  • 忘記與LINQ擴展
  • 靶向2.0框架,參考組件,其不包括LINQ默認