2011-06-20 12 views

cevap

6

Bunu sizin için yapmak için bazı uzantı yöntemleri ekleyebilirsiniz. Element yöntemi için boş değer veya öğenin kendisine dönersiniz. Elements yöntemi için boş bir sonuç veya hedef öğeler döndürdünüz.

public static class XElementExtensions 
{ 
    public static XElement ElementOrDefault(this XElement element, XName name) 
    { 
     if (element == null) 
      return null; 

     return element.Element(name); 
    } 

    public static IEnumerable<XElement> ElementsOrEmpty(this XElement element, XName name) 
    { 
     if (element == null) 
      return Enumerable.Empty<XElement>(); 

     return element.Elements(name); 
    } 
} 

Bu şekilde onları kullanabilirsiniz::

Bunlar uzantısı yöntemlerdir Eğer ElementsOrEmpty için sorgulama değilseniz

var query = theElement.ElementOrDefault("Blah") 
         .ElementOrDefault("Whatever") 
         .ElementsOrEmpty("Something"); 
if (query.Any()) 
    // do something 
else 
    // no elements 

ve son istek kontrol ediyorum ElementOrDefault içindir Enumerable.Any yöntemini kullanmak yerine null.

+0

Mükemmel. Teşekkürler. – MangoBrainz

+0

Klavyenizi .net framework v.next dosyasına, umarım. –