2010-04-01 3 views
1

Мы хотим, чтобы результат запроса должен быть присвоены двумя результатов на основе некоторых условий, как следующее:Как я могу использовать разные запросы LINQ to XML на основе двух разных условий?

var vAudioData = (from xAudioinfo in xResponse.Descendants(ns + "DIDL-Lite").Elements(ns + "item") 

if((xAudioinfo.Element(upnp + "artist")!=null) 
{ 
    select new RMSMedia 
    { 
     strAudioTitle = ((string)xAudioinfo.Element(dc + "title")).Trim() 
    }; 
} 
else 
    select new RMSMedia 
     { 
     strGen = ((string)xAudioinfo.Element(dc + "Gen")).Trim() 
     }; 

VarAudioData должен содержать как тогда и другое условие значения.

Я добавил условие if только для того, чтобы проектировать, что мне нужно, м. Конечно, хотя мы не можем использовать if и else.

Пожалуйста, помогите, если есть какой-либо другой подход для достижения этого.

Спасибо,

Subhen

ответ

3
from xAudioinfo in xResponse.Descendants(ns + "DIDL-Lite").Elements(ns + "item") 
select new RSMedia 
{ 
    strAudioTitle = (xAudioinfo.Element(upnp + "artist") != null) 
     ? ((string)xAudioinfo.Element(dc + "title")).Trim() 
     : null, 
    strGen = (xAudioinfo.Element(upnp + "artist") == null) 
     ? ((string)xAudioinfo.Element(dc + "Gen")).Trim() 
     : null 
} 

Вы можете также использовать союз, который может выглядеть немного лучше ... это столь же эффективным, хотя.

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