2011-07-04 96 views
0

以下是代碼中,我得到實現課程的列表:Linq查詢的異常/錯誤

Dim Result As New List(Of WorkMateLib.CourseNameSpace.CoursesLib.Course) 
    For Each cat As WorkMateLib.CourseNameSpace.CoursesLib.Category In Courses.CoursesOfferedMAIN.Values 
     For Each c As WorkMateLib.CourseNameSpace.CoursesLib.Course In cat.Courses.Values 
      Result.Add(c) 
     Next 
    Next 

,它是工作的罰款。但是我想嘗試做同樣的使用LINQ和代碼是:

Result.AddRange(From k As WorkMateLib.CourseNameSpace.CoursesLib.Category In Courses.CoursesOfferedMAIN.Values Where Not k.CategoryName = "" Select k.Courses.Values.ToList()) 

但拋出的錯誤如下:

無法轉換 類型的對象WhereSelectEnumerableIterator 2[WorkMateLib.CourseNameSpace.CoursesLib+Category,System.Collections.Generic.List 1 WorkMateLib.CourseNameSpace.CoursesLib + Course]]' to type 'System.Collections.Generic.IEnumerable`1 [WorkMateLib.CourseNameSpace.CoursesLib + Course]'。

請幫我理解一下。謝謝。

回答

2

這應該是等效的。請注意,您無需自行創建列表。

Dim Result = Courses.CoursesOfferedMAIN.Values     _ 
        .SelectMany(Function(cat) cat.Courses.Values) _ 
        .ToList 
+0

梅爾卡多男人你真的搖滾。感謝您的幫助。我一直在使用字典類型很長一段時間,最近開始着眼於linq,你的代碼對於更好地理解字典的使用是非常有幫助的。謝謝,現在我可以從文件中刪除更多行代碼。 :d – surpavan