* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / System.Xml.XLinq / System.Xml.XLinq / XElementSequence.cs
1 #if NET_2_0
2
3 using System;
4 using System.Collections;
5 using System.Collections.Generic;
6 using System.Runtime.CompilerServices;
7
8 namespace System.Xml.XLinq
9 {
10         [ExtensionAttribute]
11         public static class XElementSequence
12         {
13                 [ExtensionAttribute]
14                 public static IEnumerable <XElement> Ancestors (IEnumerable <XElement> source)
15                 {
16                         foreach (XElement item in source)
17                                 foreach (XElement elem in item.Ancestors ())
18                                         yield return elem;
19                 }
20
21                 [ExtensionAttribute]
22                 public static IEnumerable <XElement> Ancestors (IEnumerable <XElement> source, XName name)
23                 {
24                         foreach (XElement item in source)
25                                 foreach (XElement elem in item.Ancestors (name))
26                                         yield return elem;
27                 }
28
29                 [ExtensionAttribute]
30                 public static IEnumerable <XAttribute> Attributes (IEnumerable <XElement> source)
31                 {
32                         foreach (XElement item in source)
33                                 foreach (XAttribute attr in item.Attributes ())
34                                         yield return attr;
35                 }
36
37                 [ExtensionAttribute]
38                 public static IEnumerable <XAttribute> Attributes (IEnumerable <XElement> source, XName name)
39                 {
40                         foreach (XElement item in source)
41                                 foreach (XAttribute attr in item.Attributes (name))
42                                         yield return attr;
43                 }
44         }
45 }
46 #endif