Extensions.Ancestors Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan kumpulan elemen yang berisi leluhur setiap simpul dalam kumpulan sumber.
Overload
| Nama | Deskripsi |
|---|---|
| Ancestors<T>(IEnumerable<T>) |
Mengembalikan kumpulan elemen yang berisi leluhur setiap simpul dalam kumpulan sumber. |
| Ancestors<T>(IEnumerable<T>, XName) |
Mengembalikan kumpulan elemen yang difilter yang berisi leluhur setiap simpul dalam kumpulan sumber. Hanya elemen yang memiliki XName yang cocok yang disertakan dalam koleksi. |
Keterangan
Jika beberapa simpul dalam koleksi sumber memiliki leluhur yang sama, leluhur akan disertakan beberapa kali dalam koleksi hasil. Untuk menghindari hal ini, gunakan Distinct metode .
Metode ini menggunakan eksekusi yang ditangguhkan.
Ancestors<T>(IEnumerable<T>)
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
Mengembalikan kumpulan elemen yang berisi leluhur setiap simpul dalam kumpulan sumber.
public:
generic <typename T>
where T : System::Xml::Linq::XNode[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Ancestors(System::Collections::Generic::IEnumerable<T> ^ source);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Ancestors<T>(this System.Collections.Generic.IEnumerable<T> source) where T : System.Xml.Linq.XNode;
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Ancestors<T>(this System.Collections.Generic.IEnumerable<T?> source) where T : System.Xml.Linq.XNode;
static member Ancestors : seq<'T (requires 'T :> System.Xml.Linq.XNode)> -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XNode)
<Extension()>
Public Function Ancestors(Of T As XNode) (source As IEnumerable(Of T)) As IEnumerable(Of XElement)
Jenis parameter
- T
Jenis objek dalam , dibatasi sourceke XNode.
Parameter
- source
- IEnumerable<T>
Salah satunya IEnumerable<T>XNode berisi kumpulan sumber.
Mengembalikan
Salah satunya IEnumerable<T>XElement berisi leluhur setiap simpul dalam koleksi sumber.
Contoh
Contoh berikut mengambil koleksi elemen cucu besar. Kemudian menggunakan metode sumbu ini untuk mengambil semua leluhur dari semua elemen dalam koleksi.
XElement xmlTree = new XElement("Root",
new XElement("Child1",
new XElement("GrandChild1",
new XElement("GreatGrandChild1", "content")
)
),
new XElement("Child2",
new XElement("GrandChild2",
new XElement("GreatGrandChild2", "content")
)
)
);
IEnumerable<XElement> greatGrandChildren =
from el in xmlTree.Descendants()
where el.Name.LocalName.StartsWith("Great")
select el;
Console.WriteLine("Great Grand Children Elements");
Console.WriteLine("----");
foreach (XElement de in greatGrandChildren)
Console.WriteLine(de.Name);
IEnumerable<XElement> allAncestors =
from el in greatGrandChildren.Ancestors().Distinct()
select el;
Console.WriteLine("");
Console.WriteLine("Ancestors");
Console.WriteLine("----");
foreach (XElement de in allAncestors)
Console.WriteLine(de.Name);
Dim xmlTree As XElement = _
<Root>
<Child1>
<GrandChild1>
<GreatGrandChild1>content</GreatGrandChild1>
</GrandChild1>
</Child1>
<Child2>
<GrandChild2>
<GreatGrandChild2>content</GreatGrandChild2>
</GrandChild2>
</Child2>
</Root>
Dim greatGrandChildren = From el In xmlTree.Descendants _
Where el.Name.LocalName.StartsWith("Great") _
Select el
Console.WriteLine("Great Grand Children Elements")
Console.WriteLine("----")
For Each de As XElement In greatGrandChildren
Console.WriteLine(de.Name)
Next
Dim allAncestors = From el In greatGrandChildren.Ancestors.Distinct _
Select el
Console.WriteLine("")
Console.WriteLine("Ancestors")
Console.WriteLine("----")
For Each de As XElement In allAncestors
Console.WriteLine(de.Name)
Next
Contoh ini menghasilkan output berikut:
Great Grand Children Elements
----
GreatGrandChild1
GreatGrandChild2
Ancestors
----
GrandChild1
Child1
Root
GrandChild2
Child2
Berikut ini adalah contoh yang sama, tetapi dalam hal ini XML berada di namespace layanan. Untuk informasi selengkapnya, lihat Bekerja dengan Namespace XML.
XNamespace aw = "http://www.adventure-works.com";
XElement xmlTree = new XElement(aw + "Root",
new XElement(aw + "Child1",
new XElement(aw + "GrandChild1",
new XElement(aw + "GreatGrandChild1", "content")
)
),
new XElement(aw + "Child2",
new XElement(aw + "GrandChild2",
new XElement(aw + "GreatGrandChild2", "content")
)
)
);
IEnumerable<XElement> greatGrandChildren =
from el in xmlTree.Descendants()
where el.Name.LocalName.StartsWith("Great")
select el;
Console.WriteLine("Great Grand Children Elements");
Console.WriteLine("----");
foreach (XElement de in greatGrandChildren)
Console.WriteLine(de.Name);
IEnumerable<XElement> allAncestors =
from el in greatGrandChildren.Ancestors().Distinct()
select el;
Console.WriteLine("");
Console.WriteLine("Ancestors");
Console.WriteLine("----");
foreach (XElement de in allAncestors)
Console.WriteLine(de.Name);
Imports <xmlns="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim xmlTree As XElement = _
<Root>
<Child1>
<GrandChild1>
<GreatGrandChild1>content</GreatGrandChild1>
</GrandChild1>
</Child1>
<Child2>
<GrandChild2>
<GreatGrandChild2>content</GreatGrandChild2>
</GrandChild2>
</Child2>
</Root>
Dim greatGrandChildren = From el In xmlTree.Descendants _
Where el.Name.LocalName.StartsWith("Great") _
Select el
Console.WriteLine("Great Grand Children Elements")
Console.WriteLine("----")
For Each de As XElement In greatGrandChildren
Console.WriteLine(de.Name)
Next
Dim allAncestors = From el In greatGrandChildren.Ancestors.Distinct _
Select el
Console.WriteLine("")
Console.WriteLine("Ancestors")
Console.WriteLine("----")
For Each de As XElement In allAncestors
Console.WriteLine(de.Name)
Next
End Sub
End Module
Contoh ini menghasilkan output berikut:
Great Grand Children Elements
----
{http://www.adventure-works.com}GreatGrandChild1
{http://www.adventure-works.com}GreatGrandChild2
Ancestors
----
{http://www.adventure-works.com}GrandChild1
{http://www.adventure-works.com}Child1
{http://www.adventure-works.com}Root
{http://www.adventure-works.com}GrandChild2
{http://www.adventure-works.com}Child2
Keterangan
Jika beberapa simpul dalam koleksi sumber memiliki leluhur yang sama, leluhur akan disertakan beberapa kali dalam koleksi hasil. Untuk menghindari hal ini, gunakan Distinct metode .
Metode ini menggunakan eksekusi yang ditangguhkan.
Lihat juga
- Ancestors()
- AncestorsAndSelf()
- AncestorsAndSelf
- Descendants
- Nodes<T>(IEnumerable<T>)
- Gambaran umum LINQ ke XML
Berlaku untuk
Ancestors<T>(IEnumerable<T>, XName)
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
- Sumber:
- Extensions.cs
Mengembalikan kumpulan elemen yang difilter yang berisi leluhur setiap simpul dalam kumpulan sumber. Hanya elemen yang memiliki XName yang cocok yang disertakan dalam koleksi.
public:
generic <typename T>
where T : System::Xml::Linq::XNode[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Ancestors(System::Collections::Generic::IEnumerable<T> ^ source, System::Xml::Linq::XName ^ name);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Ancestors<T>(this System.Collections.Generic.IEnumerable<T> source, System.Xml.Linq.XName name) where T : System.Xml.Linq.XNode;
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Ancestors<T>(this System.Collections.Generic.IEnumerable<T?> source, System.Xml.Linq.XName? name) where T : System.Xml.Linq.XNode;
static member Ancestors : seq<'T (requires 'T :> System.Xml.Linq.XNode)> * System.Xml.Linq.XName -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XNode)
<Extension()>
Public Function Ancestors(Of T As XNode) (source As IEnumerable(Of T), name As XName) As IEnumerable(Of XElement)
Jenis parameter
- T
Jenis objek dalam , dibatasi sourceke XNode.
Parameter
- source
- IEnumerable<T>
Salah satunya IEnumerable<T>XNode berisi kumpulan sumber.
Mengembalikan
Salah satunya IEnumerable<T>XElement berisi leluhur setiap simpul dalam koleksi sumber. Hanya elemen yang memiliki XName yang cocok yang disertakan dalam koleksi.
Contoh
Contoh berikut mengambil koleksi elemen cucu besar. Kemudian menggunakan metode sumbu ini untuk mengambil semua leluhur dari semua elemen dalam koleksi yang cocok dengan yang ditentukan XName.
XElement xmlTree = new XElement("Root",
new XElement("Child1",
new XElement("GrandChild1",
new XElement("GreatGrandChild1", "content")
)
),
new XElement("Child2",
new XElement("GrandChild2",
new XElement("GreatGrandChild2", "content")
)
)
);
IEnumerable<XElement> greatGrandChildren =
from el in xmlTree.Descendants()
where el.Name.LocalName.StartsWith("Great")
select el;
Console.WriteLine("Great Grand Children Elements");
Console.WriteLine("----");
foreach (XElement de in greatGrandChildren)
Console.WriteLine(de.Name);
IEnumerable<XElement> allAncestors =
from el in greatGrandChildren.Ancestors("Child1")
select el;
Console.WriteLine("");
Console.WriteLine("Ancestors");
Console.WriteLine("----");
foreach (XElement de in allAncestors)
Console.WriteLine(de.Name);
Dim xmlTree As XElement = _
<Root>
<Child1>
<GrandChild1>
<GreatGrandChild1>content</GreatGrandChild1>
</GrandChild1>
</Child1>
<Child2>
<GrandChild2>
<GreatGrandChild2>content</GreatGrandChild2>
</GrandChild2>
</Child2>
</Root>
Dim greatGrandChildren = From el In xmlTree.Descendants _
Where el.Name.LocalName.StartsWith("Great") _
Select el
Console.WriteLine("Great Grand Children Elements")
Console.WriteLine("----")
For Each de As XElement In greatGrandChildren
Console.WriteLine(de.Name)
Next
Dim allAncestors = From el In greatGrandChildren.Ancestors("Child1") _
Select el
Console.WriteLine("")
Console.WriteLine("Ancestors")
Console.WriteLine("----")
For Each de As XElement In allAncestors
Console.WriteLine(de.Name)
Next
Contoh ini menghasilkan output berikut:
Great Grand Children Elements
----
GreatGrandChild1
GreatGrandChild2
Ancestors
----
Child1
Berikut ini adalah contoh yang sama, tetapi dalam hal ini XML berada di namespace layanan. Untuk informasi selengkapnya, lihat Bekerja dengan Namespace XML.
XNamespace aw = "http://www.adventure-works.com";
XElement xmlTree = new XElement(aw + "Root",
new XElement(aw + "Child1",
new XElement(aw + "GrandChild1",
new XElement(aw + "GreatGrandChild1", "content")
)
),
new XElement(aw + "Child2",
new XElement(aw + "GrandChild2",
new XElement(aw + "GreatGrandChild2", "content")
)
)
);
IEnumerable<XElement> greatGrandChildren =
from el in xmlTree.Descendants()
where el.Name.LocalName.StartsWith("Great")
select el;
Console.WriteLine("Great Grand Children Elements");
Console.WriteLine("----");
foreach (XElement de in greatGrandChildren)
Console.WriteLine(de.Name);
IEnumerable<XElement> allAncestors =
from el in greatGrandChildren.Ancestors(aw + "Child1")
select el;
Console.WriteLine("");
Console.WriteLine("Ancestors");
Console.WriteLine("----");
foreach (XElement de in allAncestors)
Console.WriteLine(de.Name);
Imports <xmlns="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim xmlTree As XElement = _
<Root>
<Child1>
<GrandChild1>
<GreatGrandChild1>content</GreatGrandChild1>
</GrandChild1>
</Child1>
<Child2>
<GrandChild2>
<GreatGrandChild2>content</GreatGrandChild2>
</GrandChild2>
</Child2>
</Root>
Dim greatGrandChildren = From el In xmlTree.Descendants _
Where el.Name.LocalName.StartsWith("Great") _
Select el
Console.WriteLine("Great Grand Children Elements")
Console.WriteLine("----")
For Each de As XElement In greatGrandChildren
Console.WriteLine(de.Name)
Next
Dim allAncestors = From el In greatGrandChildren.Ancestors(GetXmlNamespace() + "Child1") _
Select el
Console.WriteLine("")
Console.WriteLine("Ancestors")
Console.WriteLine("----")
For Each de As XElement In allAncestors
Console.WriteLine(de.Name)
Next
End Sub
End Module
Contoh ini menghasilkan output berikut:
Great Grand Children Elements
----
{http://www.adventure-works.com}GreatGrandChild1
{http://www.adventure-works.com}GreatGrandChild2
Ancestors
----
{http://www.adventure-works.com}Child1
Keterangan
Jika beberapa simpul dalam koleksi sumber memiliki leluhur yang sama dengan pencocokan XName, leluhur akan disertakan beberapa kali dalam koleksi hasil.
Metode ini menggunakan eksekusi yang ditangguhkan.
Lihat juga
- Ancestors()
- AncestorsAndSelf()
- AncestorsAndSelf
- Descendants
- Nodes<T>(IEnumerable<T>)
- Gambaran umum LINQ ke XML