2012-03-30 4 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"), 'которая не только меньше кода, но и код, который ушел, был шумным церемониальным кодом типа, что левый ИМО мясистый. – devgeezer

ответ

5

Поскольку вы выбора new dictSuras, возвращаемое значение является IEnumerable<dictSuras>.

+0

Большое спасибо, он (IEnumerable ) работал! :) – wafers

+0

@saafh, совет: я настоятельно рекомендую вам проверить ReSharper. Это здорово для таких вещей. С одним нажатием клавиши вы можете преобразовать свою декларацию 'var' в« реальный »тип (в этом случае« IEnumerable ».Я нахожу это огромным благом, и это чрезвычайно популярно. –

3

Вместо ответа, который дает информацию, которую ищет ОП, я дам ответ, который показывает, как его найти. Это легче для всех нас, я думаю.

В Visual Studio, если вы наведите указатель мыши на переменную, отображается всплывающая подсказка, которая включает тип переменной. Это очень полезно, если вы похожи на меня и не любите var, так как он позволяет вам сразу увидеть, каков фактический тип.

+0

+1, но это полезно, если люди не так, как вы и * do *, как 'var'! –

+0

Действительно очень полезный совет! Я программировал программирование C# + wp7 только со вчерашнего дня :) – wafers