2010-02-14 2 views
1

Я был в основном интересно, если это возможно, чтобы оптимизировать этот код:Есть более короткий путь для разбора атрибутов, как Int (или любой другой примитив) в LinqToSql

AmountComments = Int32.Parse(r.Attribute("AmountComments").Value) 

В идеале я хотел бы написать что-то вроде

AmountComments = r.Attribute("AmountComments") 

г будет XML-тег типа XElement, который выбран, прежде чем в запросе Linq.

+0

Извините, но что такое 'r'? –

+0

Я думаю, что значение - это строка, поэтому Parse - это способ сделать это. –

+0

r будет XElement – TomHastjarjanto

ответ

6

Рассмотрим написание метод расширения (ы) для типа .Attribute()

Один метод расширения для каждого типа, который вы хотели бы вне. Таким образом, вы просто сможете:

AmountComments = r.Attribute("AmountComments").ToInt32(); 


public static class LinqUtils 
{ 
    public static int Int32(this XAttribute attribute) 
    { 
     return System.Int32.Parse(attribute.Value); 
    } 
} 
+0

Прохладный спасибо, добавил мое решение к вашему ответу. – TomHastjarjanto

+0

@Tomh - Cheers, просто заполнил метод расширения сам, когда я получил оранжевый всплывающий стол, в котором говорилось, что вы отредактировали ответ. Хорошее редактирование! –

Смежные вопросы