ArraySegment<T> 構造体

定義

1 次元配列のセクションを区切ります。Delimits a section of a one-dimensional array.

generic <typename T>
public value class ArraySegment : System::Collections::Generic::ICollection<T>, System::Collections::Generic::IEnumerable<T>, System::Collections::Generic::IList<T>, System::Collections::Generic::IReadOnlyCollection<T>, System::Collections::Generic::IReadOnlyList<T>
[System.Serializable]
public struct ArraySegment<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>
type ArraySegment<'T> = struct
    interface IList<'T>
    interface IReadOnlyList<'T>
    interface ICollection<'T>
    interface seq<'T>
    interface IEnumerable
    interface IReadOnlyCollection<'T>
Public Structure ArraySegment(Of T)
Implements ICollection(Of T), IEnumerable(Of T), IList(Of T), IReadOnlyCollection(Of T), IReadOnlyList(Of T)

型パラメーター

T

配列セグメントの要素の型。The type of the elements in the array segment.

継承
ArraySegment<T>
属性
実装

次のコード例では、@no__t 0 の構造体をメソッドに渡します。The following code example passes an ArraySegment<T> structure to a method.

using namespace System;


namespace Sample
{
    public ref class SampleArray  
    {
    public:
        static void Work()  
        {

            // Create and initialize a new string array.
            array <String^>^ words = {"The", "quick", "brown",
                "fox", "jumps", "over", "the", "lazy", "dog"};

            // Display the initial contents of the array.
            Console::WriteLine("The first array segment"
                " (with all the array's elements) contains:");
            PrintIndexAndValues(words);

            // Define an array segment that contains the entire array.
            ArraySegment<String^> segment(words);
            
            // Display the contents of the ArraySegment.
            Console::WriteLine("The first array segment"
                " (with all the array's elements) contains:");
            PrintIndexAndValues(segment);

            // Define an array segment that contains the middle five 
            // values of the array.
            ArraySegment<String^> middle(words, 2, 5);
            
            // Display the contents of the ArraySegment.
            Console::WriteLine("The second array segment"
                " (with the middle five elements) contains:");
            PrintIndexAndValues(middle);

            // Modify the fourth element of the first array 
            // segment
            segment.Array[3] = "LION";

            // Display the contents of the second array segment 
            // middle. Note that the value of its second element 
            // also changed.
            Console::WriteLine("After the first array segment"
                " is modified,the second array segment"
                " now contains:");
            PrintIndexAndValues(middle);
            Console::ReadLine();
        }

        static void PrintIndexAndValues(ArraySegment<String^>^ segment)  
        {
            for (int i = segment->Offset; 
                i < (segment->Offset + segment->Count); i++)  
            {
                Console::WriteLine("   [{0}] : {1}", i,
                    segment->Array[i]);
            }
            Console::WriteLine();
        }

        static void PrintIndexAndValues(array<String^>^ words) 
        {
            for (int i = 0; i < words->Length; i++)  
            {
                Console::WriteLine("   [{0}] : {1}", i,
                    words[i]);
            }
            Console::WriteLine();
        }
    };
}

int main()
{
    Sample::SampleArray::Work();
    return 0; 
}


    /* 
    This code produces the following output.

    The original array initially contains:
    [0] : The
    [1] : quick
    [2] : brown
    [3] : fox
    [4] : jumps
    [5] : over
    [6] : the
    [7] : lazy
    [8] : dog

    The first array segment (with all the array's elements) contains:
    [0] : The
    [1] : quick
    [2] : brown
    [3] : fox
    [4] : jumps
    [5] : over
    [6] : the
    [7] : lazy
    [8] : dog

    The second array segment (with the middle five elements) contains:
    [2] : brown
    [3] : fox
    [4] : jumps
    [5] : over
    [6] : the

    After the first array segment is modified, the second array segment now contains:
    [2] : brown
    [3] : LION
    [4] : jumps
    [5] : over
    [6] : the

    */

using System;

public class SamplesArray  {
 
   public static void Main()  {
 
      // Create and initialize a new string array.
      String[] myArr = { "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog" };
 
      // Display the initial contents of the array.
      Console.WriteLine( "The original array initially contains:" );
      PrintIndexAndValues( myArr );

      // Define an array segment that contains the entire array.
      ArraySegment<String> myArrSegAll = new ArraySegment<String>( myArr );

      // Display the contents of the ArraySegment.
      Console.WriteLine( "The first array segment (with all the array's elements) contains:" );
      PrintIndexAndValues( myArrSegAll );

      // Define an array segment that contains the middle five values of the array.
      ArraySegment<String> myArrSegMid = new ArraySegment<String>( myArr, 2, 5 );

      // Display the contents of the ArraySegment.
      Console.WriteLine( "The second array segment (with the middle five elements) contains:" );
      PrintIndexAndValues( myArrSegMid );

      // Modify the fourth element of the first array segment myArrSegAll.
      myArrSegAll.Array[3] = "LION";

      // Display the contents of the second array segment myArrSegMid.
      // Note that the value of its second element also changed.
      Console.WriteLine( "After the first array segment is modified, the second array segment now contains:" );
      PrintIndexAndValues( myArrSegMid );

   }
 
   public static void PrintIndexAndValues( ArraySegment<String> arrSeg )  {
      for ( int i = arrSeg.Offset; i < (arrSeg.Offset + arrSeg.Count); i++ )  {
         Console.WriteLine( "   [{0}] : {1}", i, arrSeg.Array[i] );
      }
      Console.WriteLine();
   }

   public static void PrintIndexAndValues( String[] myArr )  {
      for ( int i = 0; i < myArr.Length; i++ )  {
         Console.WriteLine( "   [{0}] : {1}", i, myArr[i] );
      }
      Console.WriteLine();
   }

}


/* 
This code produces the following output.

The original array initially contains:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the
   [7] : lazy
   [8] : dog

The first array segment (with all the array's elements) contains:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the
   [7] : lazy
   [8] : dog

The second array segment (with the middle five elements) contains:
   [2] : brown
   [3] : fox
   [4] : jumps
   [5] : over
   [6] : the

After the first array segment is modified, the second array segment now contains:
   [2] : brown
   [3] : LION
   [4] : jumps
   [5] : over
   [6] : the

*/

Public Class SamplesArray

    Public Shared Sub Main()

        ' Create and initialize a new string array.
        Dim myArr As String() =  {"The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"}

        ' Display the initial contents of the array.
        Console.WriteLine("The original array initially contains:")
        PrintIndexAndValues(myArr)

        ' Define an array segment that contains the entire array.
        Dim myArrSegAll As New ArraySegment(Of String)(myArr)

        ' Display the contents of the ArraySegment.
        Console.WriteLine("The first array segment (with all the array's elements) contains:")
        PrintIndexAndValues(myArrSegAll)

        ' Define an array segment that contains the middle five values of the array.
        Dim myArrSegMid As New ArraySegment(Of String)(myArr, 2, 5)

        ' Display the contents of the ArraySegment.
        Console.WriteLine("The second array segment (with the middle five elements) contains:")
        PrintIndexAndValues(myArrSegMid)

        ' Modify the fourth element of the first array segment myArrSegAll.
        myArrSegAll.Array(3) = "LION"

        ' Display the contents of the second array segment myArrSegMid.
        ' Note that the value of its second element also changed.
        Console.WriteLine("After the first array segment is modified, the second array segment now contains:")
        PrintIndexAndValues(myArrSegMid)

    End Sub

    Public Shared Sub PrintIndexAndValues(arrSeg As ArraySegment(Of String))
        Dim i As Integer
        For i = arrSeg.Offset To (arrSeg.Offset + arrSeg.Count - 1)
            Console.WriteLine("   [{0}] : {1}", i, arrSeg.Array(i))
        Next i
        Console.WriteLine()
    End Sub

    Public Shared Sub PrintIndexAndValues(myArr as String())
        Dim i As Integer
        For i = 0 To (myArr.Length - 1)
            Console.WriteLine("   [{0}] : {1}", i, myArr(i))
        Next i
        Console.WriteLine()
    End Sub

End Class


'This code produces the following output.
'
'The original array initially contains:
'   [0] : The
'   [1] : quick
'   [2] : brown
'   [3] : fox
'   [4] : jumps
'   [5] : over
'   [6] : the
'   [7] : lazy
'   [8] : dog
'
'The first array segment (with all the array's elements) contains:
'   [0] : The
'   [1] : quick
'   [2] : brown
'   [3] : fox
'   [4] : jumps
'   [5] : over
'   [6] : the
'   [7] : lazy
'   [8] : dog
'
'The second array segment (with the middle five elements) contains:
'   [2] : brown
'   [3] : fox
'   [4] : jumps
'   [5] : over
'   [6] : the
'
'After the first array segment is modified, the second array segment now contains:
'   [2] : brown
'   [3] : LION
'   [4] : jumps
'   [5] : over
'   [6] : the

注釈

ArraySegment<T> は、配列内の要素の範囲を区切る配列のラッパーです。ArraySegment<T> is a wrapper around an array that delimits a range of elements in that array. 複数の ArraySegment<T> インスタンスは、同じ元の配列を参照でき、重複する可能性があります。Multiple ArraySegment<T> instances can refer to the same original array and can overlap. 元の配列は1次元である必要があり、0から始まるインデックス番号を持つ必要があります。The original array must be one-dimensional and must have zero-based indexing.

注意

ArraySegment<T> は、.NET Framework 4.6.NET Framework 4.6 から始まる IReadOnlyCollection<T> インターフェイスを実装します。以前のバージョンの .NET Framework では、@no__t 3 の構造体がこのインターフェイスを実装していませんでした。ArraySegment<T> implements the IReadOnlyCollection<T> interface starting with the .NET Framework 4.6.NET Framework 4.6; in previous versions of the .NET Framework, the ArraySegment<T> structure did not implement this interface.

@No__t 0 構造体は、配列の要素が個別のセグメントで操作されるときに便利です。The ArraySegment<T> structure is useful whenever the elements of an array will be manipulated in distinct segments. 次に例を示します。For example:

  • 配列の部分のみを表す @no__t 0 オブジェクトを、メソッドへの引数として渡すことができます。これは、配列の一部のコピーを渡すために Copy のような比較的高価なメソッドを呼び出すことではありません。You can pass an ArraySegment<T> object that represents only a portion of an array as an argument to a method, rather than call a relatively expensive method like Copy to pass a copy of a portion of an array.

  • マルチスレッドアプリでは、@no__t 0 構造体を使用して、各スレッドが配列の一部だけを操作できるようにすることができます。In a multithreaded app, you can use the ArraySegment<T> structure to have each thread operate on only a portion of the array.

  • タスクベースの非同期操作では、@no__t 0 のオブジェクトを使用して、各タスクが配列の個別のセグメントで動作するようにすることができます。For task-based asynchronous operations, you can use an ArraySegment<T> object to ensure that each task operates on a distinct segment of the array. 次の例では、最大10個の要素を持つ個々のセグメントに配列を分割します。The following example divides an array into individual segments with up to ten elements. セグメント内の各要素には、セグメント番号が乗算されます。Each element in the segment is multiplied by its segment number. 結果として、ArraySegment<T> クラスを使用してこの方法で要素を操作すると、基になる配列の値が変更されることがわかります。The result shows that using the ArraySegment<T> class to manipulate elements in this way changes the values of its underlying array.

    using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    
    public class Example
    {
       private const int segmentSize = 10;
       
       public static async Task Main()
       {
          List<Task> tasks = new List<Task>();
    
          // Create array.
          int[] arr = new int[50];
          for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++)
             arr[ctr] = ctr + 1;
    
          // Handle array in segments of 10.
          for (int ctr = 1; ctr <= Math.Ceiling(((double)arr.Length)/segmentSize); ctr++) {
             int multiplier = ctr;
             int elements = (multiplier - 1) * 10 + segmentSize > arr.Length ?
                             arr.Length - (multiplier - 1) * 10 : segmentSize;
             ArraySegment<int> segment = new ArraySegment<int>(arr, (ctr - 1) * 10, elements);
             tasks.Add(Task.Run( () => { IList<int> list = (IList<int>) segment;
                                         for (int index = 0; index < list.Count; index++)
                                            list[index] = list[index] * multiplier;
                                       } ));
          }
          try {
             await Task.WhenAll(tasks.ToArray());
             int elementsShown = 0;
             foreach (var value in arr) {
                Console.Write("{0,3} ", value);
                elementsShown++;
                if (elementsShown % 18 == 0)
                   Console.WriteLine();
             }
          }
          catch (AggregateException e) {
             Console.WriteLine("Errors occurred when working with the array:");
             foreach (var inner in e.InnerExceptions)
                Console.WriteLine("{0}: {1}", inner.GetType().Name, inner.Message);
          }
       }
    }
    // The example displays the following output:
    //      1   2   3   4   5   6   7   8   9  10  22  24  26  28  30  32  34  36
    //     38  40  63  66  69  72  75  78  81  84  87  90 124 128 132 136 140 144
    //    148 152 156 160 205 210 215 220 225 230 235 240 245 250
    
    Imports System.Collections.Generic
    Imports System.Threading.Tasks
    
    Module Example
      Private Const SegmentSize As Integer = 10
      
       Public Sub Main()
          Dim tasks As New List(Of Task)
          
           ' Create array.
          Dim arr(49) As Integer
          For ctr As Integer = 0 To arr.GetUpperBound(0)
             arr(ctr) = ctr + 1
          Next
    
          ' Handle array in segments of 10.
          For ctr As Integer = 1 To CInt(Math.Ceiling(arr.Length / segmentSize))
             Dim multiplier As Integer = ctr
             Dim elements As Integer = If((multiplier - 1) * 10 + segmentSize > arr.Length,
                                          arr.Length - (multiplier - 1) * 10,
                                          segmentSize)
             Dim segment As New ArraySegment(Of Integer)(arr, (ctr - 1) * 10, elements)
             tasks.Add(Task.Run( Sub()
                                    Dim list As IList(Of Integer) = CType(segment, IList(Of Integer))
                                    For index As Integer = 0 To list.Count - 1
                                       list(index) = list(index) * multiplier
                                    Next
                                 End Sub ))
          Next
          Try
             Task.WaitAll(tasks.ToArray())
             Dim elementsShown As Integer = 0
             For Each value In arr
                Console.Write("{0,3} ", value)
                elementsShown += 1
                If elementsShown Mod 18 = 0 Then Console.WriteLine()
             Next
          Catch e As AggregateException
             Console.WriteLine("Errors occurred when working with the array:")
             For Each inner As Exception In e.InnerExceptions
                Console.WriteLine("{0}: {1}", inner.GetType().Name, inner.Message)
             Next
          End Try
       End Sub
    End Module
    ' The example displays the following output:
    '         1   2   3   4   5   6   7   8   9  10  22  24  26  28  30  32  34  36
    '        38  40  63  66  69  72  75  78  81  84  87  90 124 128 132 136 140 144
    '       148 152 156 160 205 210 215 220 225 230 235 240 245 250
    

ただし、@no__t 0 の構造体を使用して配列を個別のセグメントに分割することはできますが、セグメントは相互に完全に独立していないことに注意してください。Note, however, that although the ArraySegment<T> structure can be used to divide an array into distinct segments, the segments are not completely independent of one another. @No__t-0 プロパティは、配列のコピーではなく、元の配列全体を返します。したがって、Array プロパティによって返される配列に加えられた変更は、元の配列に対して行われます。The Array property returns the entire original array, not a copy of the array; therefore, changes made to the array returned by the Array property are made to the original array. これが望ましくない場合は、配列の部分を表す @no__t 0 のオブジェクトではなく、配列のコピーに対して操作を実行する必要があります。If this is undesirable, you should perform operations on a copy of the array, rather than an ArraySegment<T> object that represents a portion of the array.

@No__t-0 メソッドと等値演算子と非等値演算子は、2つの ArraySegment<T> オブジェクトを比較するときに、参照の等価性をテストします。The Equals method and the equality and inequality operators test for reference equality when they compare two ArraySegment<T> objects. 2つの @no__t オブジェクトが等しいと見なされるには、次のすべての条件を満たしている必要があります。For two ArraySegment<T> objects to be considered equal, they must meet all of the following conditions:

  • 同じ配列を参照しています。Reference the same array.

  • 配列内の同じインデックスから開始します。Begin at the same index in the array.

  • 要素の数は同じです。Have the same number of elements.

@No__t 0 オブジェクトのインデックスによって要素を取得する場合は、その要素を IList<T> オブジェクトにキャストし、IList<T>.Item[Int32] プロパティを使用して取得または変更する必要があります。If you want to retrieve an element by its index in the ArraySegment<T> object, you must cast it to an IList<T> object and retrieve it or modify it by using the IList<T>.Item[Int32] property. 次の例では、文字列配列のセクションを区切る @no__t 0 オブジェクト内の要素を取得します。The following example retrieves the element in an ArraySegment<T> object that delimits a section of a string array.

using System;
using System.Collections.Generic;

public class Example
{
   public static void Main()
   {
      String[] names = { "Adam", "Bruce", "Charles", "Daniel", 
                         "Ebenezer", "Francis", "Gilbert", 
                         "Henry", "Irving", "John", "Karl",
                         "Lucian", "Michael" };
      var partNames = new ArraySegment<String>(names, 2, 5);
      
      // Cast the ArraySegment object to an IList<String> and enumerate it.
      var list = (IList<String>) partNames;
      for (int ctr = 0; ctr <= list.Count - 1; ctr++)
         Console.WriteLine(list[ctr]);
   }
}
// The example displays the following output:
//    Charles
//    Daniel
//    Ebenezer
//    Francis
//    Gilbert
Imports System.Collections.Generic

Module Example
   Public Sub Main()
      Dim names() As String = { "Adam", "Bruce", "Charles", "Daniel", 
                                "Ebenezer", "Francis", "Gilbert", 
                                "Henry", "Irving", "John", "Karl",
                                "Lucian", "Michael" }
      Dim partNames As New ArraySegment(Of String)(names, 2, 5)
      
      ' Cast the ArraySegment object to an IList<String> and enumerate it.
      Dim list = CType(partNames, IList(Of String))
      For ctr As Integer = 0 To list.Count - 1
         Console.WriteLine(list(ctr))
      Next     
   End Sub
End Module
' The example displays the following output:
'    Charles
'    Daniel
'    Ebenezer
'    Francis
'    Gilbert

コンストラクター

ArraySegment<T>(T[])

指定した配列内のすべての要素を区切る ArraySegment<T> 構造体の新しいインスタンスを初期化します。Initializes a new instance of the ArraySegment<T> structure that delimits all the elements in the specified array.

ArraySegment<T>(T[], Int32, Int32)

指定した配列内で指定した要素範囲を区切る ArraySegment<T> 構造体の新しいインスタンスを初期化します。Initializes a new instance of the ArraySegment<T> structure that delimits the specified range of the elements in the specified array.

プロパティ

Array

配列セグメントで区切る要素範囲を含む元の配列を取得します。Gets the original array containing the range of elements that the array segment delimits.

Count

配列セグメントで区切られた範囲に含まれる要素の数を取得します。Gets the number of elements in the range delimited by the array segment.

Empty
Item[Int32]

指定したインデックスにある要素を取得または設定します。Gets or sets the element at the specified index.

Offset

配列セグメントで区切られた範囲に含まれる最初の要素の位置を取得します。この位置は、元の配列の先頭からの相対位置です。Gets the position of the first element in the range delimited by the array segment, relative to the start of the original array.

メソッド

CopyTo(ArraySegment<T>)
CopyTo(T[])
CopyTo(T[], Int32)
Equals(ArraySegment<T>)

指定した ArraySegment<T> 構造体が現在のインスタンスと等しいかどうかを判断します。Determines whether the specified ArraySegment<T> structure is equal to the current instance.

Equals(Object)

指定したオブジェクトが現在のインスタンスと等しいかどうかを判断します。Determines whether the specified object is equal to the current instance.

GetEnumerator()

配列セグメントの反復処理に使用できる列挙子を返します。Returns an enumerator that can be used to iterate through the array segment.

GetHashCode()

現在のインスタンスのハッシュ コードを返します。Returns the hash code for the current instance.

Slice(Int32)
Slice(Int32, Int32)
ToArray()

この配列セグメントの内容を新しい配列にコピーします。Copies the contents of this array segment into a new array.

演算子

Equality(ArraySegment<T>, ArraySegment<T>)

2 つの ArraySegment<T> 構造体が等しいかどうかを示します。Indicates whether two ArraySegment<T> structures are equal.

Implicit(T[] to ArraySegment<T>)
Inequality(ArraySegment<T>, ArraySegment<T>)

2 つの ArraySegment<T> 構造体が等しくないかどうかを示します。Indicates whether two ArraySegment<T> structures are unequal.

明示的なインターフェイスの実装

ICollection<T>.Add(T)

常に NotSupportedException 例外をスローします。Throws a NotSupportedException exception in all cases.

ICollection<T>.Clear()

常に NotSupportedException 例外をスローします。Throws a NotSupportedException exception in all cases.

ICollection<T>.Contains(T)

配列セグメントに特定の値が格納されているかどうかを判断します。Determines whether the array segment contains a specific value.

ICollection<T>.CopyTo(T[], Int32)

指定した配列インデックスを開始位置として、配列セグメントの要素を配列にコピーします。Copies the elements of the array segment to an array, starting at the specified array index.

ICollection<T>.IsReadOnly

配列セグメントが読み取り専用かどうかを示す値を取得します。Gets a value that indicates whether the array segment is read-only.

ICollection<T>.Remove(T)

常に NotSupportedException 例外をスローします。Throws a NotSupportedException exception in all cases.

IEnumerable.GetEnumerator()

配列セグメントを反復処理する列挙子を返します。Returns an enumerator that iterates through an array segment.

IEnumerable<T>.GetEnumerator()

配列セグメントを反復処理する列挙子を返します。Returns an enumerator that iterates through the array segment.

IList<T>.IndexOf(T)

配列セグメント内での指定した項目のインデックスを調べます。Determines the index of a specific item in the array segment.

IList<T>.Insert(Int32, T)

常に NotSupportedException 例外をスローします。Throws a NotSupportedException exception in all cases.

IList<T>.Item[Int32]

指定したインデックスにある要素を取得または設定します。Gets or sets the element at the specified index.

IList<T>.RemoveAt(Int32)

常に NotSupportedException 例外をスローします。Throws a NotSupportedException exception in all cases.

IReadOnlyList<T>.Item[Int32]

配列セグメントの指定したインデックスにある要素を取得します。Gets the element at the specified index of the array segment.

拡張メソッド

CopyToDataTable<T>(IEnumerable<T>)

指定した入力 DataTable オブジェクトに応じて (ジェネリック パラメーター TDataRow)、IEnumerable<T> オブジェクトのコピーを格納する DataRow を返します。Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

AsMemory<T>(ArraySegment<T>)

挿入先の配列セグメントの一部に新しいメモリ領域を作成します。Creates a new memory region over the portion of the target array segment.

AsMemory<T>(ArraySegment<T>, Int32)

指定された位置を開始位置として、セグメントの終わりまで、挿入先の配列セグメントの一部に新しいメモリ領域を作成します。Creates a new memory region over the portion of the target array segment starting at a specified position to the end of the segment.

AsMemory<T>(ArraySegment<T>, Int32, Int32)

指定された位置を開始位置とし、指定された長さで、挿入先の配列セグメントの一部に新しいメモリ領域を作成します。Creates a new memory region over the portion of the target array segment beginning at a specified position with a specified length.

AsSpan<T>(ArraySegment<T>)

挿入先の配列セグメントに新しいスパンを作成します。Creates a new span over a target array segment.

AsSpan<T>(ArraySegment<T>, Index)

指定されたインデックスを開始位置とし、セグメントの終わりで終了する挿入先の配列セグメントの一部に新しいスパンを作成します。Creates a new span over a portion of the target array segment beginning at a specified index and ending at the end of the segment.

AsSpan<T>(ArraySegment<T>, Int32)

指定された位置からセグメントの終わりまで、挿入先の配列セグメントの一部に対して新しいスパンを作成します。Creates a new span over a portion of a target array segment from a specified position to the end of the segment.

AsSpan<T>(ArraySegment<T>, Int32, Int32)

指定された位置から指定された長さだけ、挿入先の配列セグメントの一部に対して新しいスパンを作成します。Creates a new span over a portion of a target array segment from a specified position for a specified length.

AsSpan<T>(ArraySegment<T>, Range)

範囲の開始インデックスと終了インデックスを使用し、挿入先の配列セグメントの一部に対して新しいスパンを作成します。Creates a new span over a portion of a target array segment using the range start and end indexes.

Ancestors<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードの先祖が格納された、要素のコレクションを返します。Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName)

ソース コレクション内のすべてのノードの先祖が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the ancestors of every node in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子孫ノードのコレクションを返します。Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納された要素のコレクションを返します。Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName)

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

ソース コレクション内のすべての要素およびドキュメントの子要素のコレクションを返します。Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName)

ソース コレクション内のすべての要素およびドキュメントの、フィルター処理された子要素のコレクションを返します。Returns a filtered collection of the child elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードがドキュメント順に並べ替えて格納された、ノードのコレクションを返します。Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子ノードのコレクションを返します。Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

ソース コレクション内の親ノードからすべてのノードを削除します。Removes every node in the source collection from its parent node.

適用対象

こちらもご覧ください