2013-07-25 53 views
1

我想讀一個XML文件,但得到type of the expression in the select clause is incorrect. Type inference failed in the call to 'Select'誤差以下查詢的結果:LINQ To XML錯誤:select子句中表達式的類型不正確。類型推斷呼叫失敗「選擇」

List<Data> dogs = (from q in doc.Descendants("dog") 
    where (string)q.Attribute("name") == dogName 
     select new Data 
     { 
      name = q.Attribute("name").Value, 
      breed = q.Element("breed").Value, 
      sex = q.Element("sex").Value 
     }.ToList<Data>); 

數據類:

public class Data 
{ 
    public string name { get; set; } 
    public string breed { get; set; } 
    public string sex { get; set; } 
    public List<string> dogs { get; set; } 
} 

回答

5

問題在於右括號 - 當你打算把它放在對象初始值設定項的末尾時,你會在ToList()調用結束時得到它。另外,你實際上並沒有調用方法 - 你只是指定一個方法組。最後,您可以讓類型推斷爲您輸出類型參數:

List<Data> dogs = (from q in doc.Descendants("dog") 
        where (string)q.Attribute("name") == dogName 
        select new Data 
        { 
         name = q.Attribute("name").Value, 
         breed = q.Element("breed").Value, 
         sex = q.Element("sex").Value 
        }).ToList(); 
+0

您確定它不是簡單的錯字嗎? –

+1

@lazyberezovsky:我認爲它會相當合理地匹配標題中的錯誤。 –

+0

啊,我的壞 - 沒有看到標題錯誤 –

相關問題