2013-01-03 72 views
0

我需要根據外鍵值將一些Linq查詢結果返回到List對象。這樣做的語法是什麼?我是使用Linq的新手,所以下面是我迄今爲止最好的猜測。我收到錯誤的。哪裏()「條款」,指出「名稱‘PT’在目前情況下不存在。任何幫助,將不勝感激!將Linq查詢結果返回到List對象(基於條件)

 List<AgentProductTraining> productTraining = new List<AgentProductTraining>(); 

     var prodCodes = productTraining.Select(pt => new[] 
                 { 
                  pt.ProductCode, 
                  pt.NoteId, 
                  pt.ControlId 
                 }) 
                 .Where(pt.CourseCode == course.CourseCode); 

回答

1

你會需要切換的位置其中,選擇如果你使用擴展方法:

var prodCodes = productTraining.Where(pt => pt.CourseCode == course.CourseCode) 
           .Select(pt => new SomeRandomType 
                 { 
                  ProductCode = pt.ProductCode, 
                  NoteId = pt.NoteId, 
                  ControlId = pt.ControlId 
                 }); 

我還建議,因爲你可以在上面看到,說你爲select語句創建一個類型,這樣你不依靠匿名類型你應該放入你知道的所有東西的對象類型中。

另外,如果CourseCode是一個字符串,那應該是pt.CourseCode.Equals(course.CourseCode)

+0

Hm ...任何時候我定義SomeRandomType(我嘗試過字符串和AgentProductTraining到目前爲止),它立即開始在ProductCode,NoteId和ControlId上引發錯誤。該消息說:'ProductCode'在當前上下文中不存在,'NoteId'不......等。 – NealR

+0

這是因爲您需要創建一個新的對象類來存放這些字段。通過這樣做,您將避免使用匿名類型的危險。 – IronMan84

+0

有沒有辦法做到這一點,而不創建一個新的對象類?我只需要這個程序的這一部分,所以看起來有點麻煩,只爲此打破一個新的類庫。 – NealR