2010-04-01 4 views
1

Nous voulons que le résultat de la requête doit être attribué avec deux résultats en fonction de certaines conditions comme suit:Comment puis-je avoir différentes requêtes LINQ to XML basées sur deux conditions différentes?

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() 
     }; 

Le VarAudioData doit contenir à la fois si et valeurs état autre.

J'ai ajouté la condition if juste pour projeter, quels sont mes besoins, m bien sûr que nous ne pouvons pas utiliser if et else.

S'il vous plaît aider s'il y a une autre approche pour accomplir cela.

Merci,

Subhen

Répondre

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 
} 

Vous pouvez également utiliser un syndicat, ce qui peut sembler un peu plus agréable ... cela est tout aussi efficace que.

Questions connexes