2012-03-30 50 views
0

我是一個新手,有人可以幫助我什麼類型是「零件」,我無法找到正確的類型,因此不能返回對象「零件」。由於C#與Linq XML

private ???? load_parts() 
{ 
    var element = XElement.Load("xml/suras.xml"); 
    **var** Parts= from var in element.Descendants("part") 
       orderby var.Attribute("index").Value 
       select new dictSuras 
       { 
        PartIndex = Convert.ToInt32(var.Attribute("index").Value), 
        PartPosition = Convert.ToInt32(var.Attribute("position").Value), 
        PartName = var.Attribute("name").Value 
       }; 

    return Parts; 
} 
+0

您也可以考慮使用'XAttribute'顯式轉換運算符。例如,這樣做'PartIndex'的行變成:'PartIndex =(int)var.Attribute(「index」),'這不僅代碼少,而且代碼不再是嘈雜的典型代碼,什麼是左是IMO肉感。 – devgeezer 2012-03-31 03:22:37

回答

5

既然你選擇new dictSuras,返回值是IEnumerable<dictSuras>

+0

非常感謝,它(IEnumerable )工作!:) – wafers 2012-03-30 22:57:31

+0

@saafh,一個忠告的話:我強烈建議你看看ReSharper。這對這樣的事情很好。只需一個按鍵,您就可以將'var'聲明轉換爲「真實」類型(在這種情況下,「IEnumerable '。我覺得它非常受歡迎, – 2012-03-31 02:16:02

3

而不是一個答案,給出信息的OP正在尋找,我會給出一個答案,顯示如何找到它。我想我們所有人都更容易。

在Visual Studio中,如果將鼠標懸停在變量上,將顯示包含變量類型的工具提示。如果你喜歡我並且不喜歡var,這很有用,因爲它讓你一眼就能看到實際類型。

+0

+1,但如果有人是不是像你一樣*做*也像'var'一樣! – 2012-03-30 22:49:49

+0

確實是一個非常有用的提示!我從昨天開始就一直在編程c#+ wp7編程:) – wafers 2012-03-30 22:59:44