ArraySegment<T> 구조체
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
1차원 배열의 섹션을 구분합니다.
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>
generic <typename T>
public value class ArraySegment
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>
public readonly 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>
[System.Serializable]
public struct ArraySegment<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 ICollection<'T>
interface seq<'T>
interface IEnumerable
interface IList<'T>
interface IReadOnlyCollection<'T>
interface IReadOnlyList<'T>
[<System.Serializable>]
type ArraySegment<'T> = struct
[<System.Serializable>]
type ArraySegment<'T> = struct
interface IList<'T>
interface ICollection<'T>
interface IReadOnlyList<'T>
interface IReadOnlyCollection<'T>
interface seq<'T>
interface IEnumerable
[<System.Serializable>]
type ArraySegment<'T> = struct
interface IList<'T>
interface ICollection<'T>
interface seq<'T>
interface IEnumerable
interface IReadOnlyList<'T>
interface IReadOnlyCollection<'T>
type ArraySegment<'T> = struct
interface IList<'T>
interface ICollection<'T>
interface IReadOnlyList<'T>
interface IReadOnlyCollection<'T>
interface seq<'T>
interface IEnumerable
Public Structure ArraySegment(Of T)
Implements ICollection(Of T), IEnumerable(Of T), IList(Of T), IReadOnlyCollection(Of T), IReadOnlyList(Of T)
Public Structure ArraySegment(Of T)
형식 매개 변수
- T
배열 세그먼트에 있는 요소의 형식입니다.
- 상속
- 특성
- 구현
예제
다음 코드 예제에서는 메서드에 ArraySegment<T> 구조를 전달합니다.
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
*/
open System
// Print functions.
let printIndexAndValues (myArr: string []) =
for i = 0 to myArr.Length - 1 do
printfn $" [{i}] : {myArr[i]}"
printfn ""
let printIndexAndValuesSeg (arrSeg: ArraySegment<string>) =
for i = arrSeg.Offset to arrSeg.Offset + arrSeg.Count - 1 do
printfn $" [{i}] : {arrSeg.Array[i]}"
printfn ""
// Create and initialize a new string array.
let myArr = [| "The"; "quick"; "brown"; "fox"; "jumps"; "over"; "the"; "lazy"; "dog" |]
// Display the initial contents of the array.
printfn "The original array initially contains:"
printIndexAndValues myArr
// Define an array segment that contains the entire array.
let myArrSegAll = ArraySegment<string>(myArr)
// Display the contents of the ArraySegment.
printfn "The first array segment (with all the array's elements) contains:"
printIndexAndValuesSeg myArrSegAll
// Define an array segment that contains the middle five values of the array.
let myArrSegMid = ArraySegment<string>(myArr, 2, 5)
// Display the contents of the ArraySegment.
printfn "The second array segment (with the middle five elements) contains:"
printIndexAndValuesSeg 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.
printfn "After the first array segment is modified, the second array segment now contains:"
printIndexAndValuesSeg myArrSegMid
(*
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> 인스턴스는 동일한 원래 배열을 참조할 수 있으며 겹칠 수 있습니다. 원래 배열은 1차원이어야 하며 0부터 시작하는 인덱싱이 있어야 합니다.
메모
ArraySegment<T> .NET Framework 4.6부터 IReadOnlyCollection<T> 인터페이스를 구현합니다. 이전 버전의 .NET Framework에서 ArraySegment<T> 구조체가 이 인터페이스를 구현하지 않았습니다.
ArraySegment<T> 구조는 배열의 요소가 고유 세그먼트에서 조작될 때마다 유용합니다. 예를 들어:
배열의 일부만을 나타내는 ArraySegment<T> 개체를 Copy 같은 비교적 비용이 많이 드는 메서드를 호출하여 배열의 일부 복사본을 전달하는 대신 메서드에 인수로 전달할 수 있습니다.
다중 스레드 앱에서 ArraySegment<T> 구조를 사용하여 각 스레드가 배열의 일부에서만 작동하도록 할 수 있습니다.
작업 기반 비동기 작업의 경우 ArraySegment<T> 개체를 사용하여 각 작업이 배열의 고유한 세그먼트에서 작동하도록 할 수 있습니다. 다음 예제에서는 배열을 최대 10개의 요소가 있는 개별 세그먼트로 나눕니다. 세그먼트의 각 요소에 세그먼트 번호를 곱합니다. 결과는 ArraySegment<T> 클래스를 사용하여 이러한 방식으로 요소를 조작하면 내부 배열의 값이 변경된다는 것을 보여줍니다.
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
open System open System.Threading.Tasks // Create array. let arr = Array.init 50 (fun i -> i + 1) // Handle array in segments of 10. let tasks = Array.chunkBySize 10 arr |> Array.mapi (fun m elements -> let mutable segment = ArraySegment<int>(arr, m * 10, elements.Length) task { for i = 0 to segment.Count - 1 do segment[i] <- segment[i] * (m + 1) } :> Task) try Task.WhenAll(tasks).Wait() let mutable i = 0 for value in arr do printf $"{value, 3} " i <- i + 1 if i % 18 = 0 then printfn "" with :? AggregateException as e -> printfn "Errors occurred when working with the array:" for inner in e.InnerExceptions do printfn $"{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
그러나 ArraySegment<T> 구조체를 사용하여 배열을 고유 세그먼트로 나눌 수 있지만 세그먼트는 서로 완전히 독립적이지는 않습니다. Array 속성은 배열의 복사본이 아닌 전체 원래 배열을 반환합니다. 따라서 Array 속성에서 반환된 배열에 대한 변경 내용은 원래 배열에 적용됩니다. 바람직하지 않은 경우 배열의 일부를 나타내는 ArraySegment<T> 개체가 아닌 배열의 복사본에 대해 작업을 수행해야 합니다.
Equals 메서드와 같음 및 같지 않음 연산자는 두 개의 ArraySegment<T> 개체를 비교할 때 참조 같음을 테스트합니다. 두 ArraySegment<T> 개체가 같은 것으로 간주되려면 다음 조건을 모두 충족해야 합니다.
동일한 배열을 참조합니다.
배열의 동일한 인덱스에서 시작합니다.
동일한 수의 요소를 갖습니다.
ArraySegment<T> 개체의 인덱스로 요소를 검색하려면 IList<T> 개체로 캐스팅하여 검색하거나 IList<T>.Item[] 속성을 사용하여 수정해야 합니다. F#에서는 이 작업이 필요하지 않습니다. 다음 예제에서는 문자열 배열의 섹션을 구분하는 ArraySegment<T> 개체의 요소를 검색합니다.
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
open System
let names =
[| "Adam"; "Bruce"; "Charles"; "Daniel"
"Ebenezer"; "Francis"; "Gilbert"
"Henry"; "Irving"; "John"; "Karl"
"Lucian"; "Michael" |]
let partNames = ArraySegment<string>(names, 2, 5)
// Enumerate over the ArraySegment object.
for part in partNames do
printfn $"{part}"
// 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> 구조체의 새 인스턴스를 초기화합니다. |
ArraySegment<T>(T[], Int32, Int32) |
지정된 배열에 있는 요소의 지정된 범위를 구분하는 ArraySegment<T> 구조체의 새 인스턴스를 초기화합니다. |
속성
Array |
배열 세그먼트가 구분하는 요소의 범위를 포함하는 원래 배열을 가져옵니다. |
Count |
배열 세그먼트로 구분된 범위의 요소 수를 가져옵니다. |
Empty |
빈 배열 세그먼트를 나타냅니다. 이 필드는 읽기 전용입니다. |
Item[Int32] |
지정된 인덱스에서 요소를 가져오거나 설정합니다. |
Offset |
원래 배열의 시작을 기준으로 배열 세그먼트로 구분된 범위에서 첫 번째 요소의 위치를 가져옵니다. |
메서드
CopyTo(ArraySegment<T>) |
이 인스턴스의 내용을 |
CopyTo(T[]) |
이 인스턴스의 내용을 |
CopyTo(T[], Int32) |
지정된 대상 인덱스에서 시작하여 이 인스턴스의 내용을 |
Equals(ArraySegment<T>) |
지정된 ArraySegment<T> 구조체가 현재 인스턴스와 같은지 여부를 확인합니다. |
Equals(Object) |
지정된 개체가 현재 인스턴스와 같은지 여부를 확인합니다. |
GetEnumerator() |
배열 세그먼트를 반복하는 데 사용할 수 있는 열거자를 반환합니다. |
GetHashCode() |
현재 인스턴스의 해시 코드를 반환합니다. |
Slice(Int32) |
지정된 인덱스에서 시작하여 현재 배열 세그먼트에서 조각을 만듭니다. |
Slice(Int32, Int32) |
지정된 인덱스에서 시작하여 현재 배열 세그먼트에서 지정된 길이의 조각을 형성합니다. |
ToArray() |
이 배열 세그먼트의 내용을 새 배열로 복사합니다. |
연산자
Equality(ArraySegment<T>, ArraySegment<T>) |
두 ArraySegment<T> 구조체가 같은지 여부를 나타냅니다. |
Implicit(T[] to ArraySegment<T>) |
형식 |
Inequality(ArraySegment<T>, ArraySegment<T>) |
두 ArraySegment<T> 구조체가 같지 않은지 여부를 나타냅니다. |
명시적 인터페이스 구현
ICollection<T>.Add(T) |
모든 경우에 NotSupportedException 예외를 throw합니다. |
ICollection<T>.Clear() |
모든 경우에 NotSupportedException 예외를 throw합니다. |
ICollection<T>.Contains(T) |
배열 세그먼트에 특정 값이 포함되어 있는지 여부를 확인합니다. |
ICollection<T>.CopyTo(T[], Int32) |
지정된 배열 인덱스에서 시작하여 배열 세그먼트의 요소를 배열에 복사합니다. |
ICollection<T>.IsReadOnly |
배열 세그먼트가 읽기 전용인지 여부를 나타내는 값을 가져옵니다. |
ICollection<T>.Remove(T) |
모든 경우에 NotSupportedException 예외를 throw합니다. |
IEnumerable.GetEnumerator() |
배열 세그먼트를 반복하는 열거자를 반환합니다. |
IEnumerable<T>.GetEnumerator() |
배열 세그먼트를 반복하는 열거자를 반환합니다. |
IList<T>.IndexOf(T) |
배열 세그먼트에서 특정 항목의 인덱스를 결정합니다. |
IList<T>.Insert(Int32, T) |
모든 경우에 NotSupportedException 예외를 throw합니다. |
IList<T>.Item[Int32] |
지정된 인덱스에서 요소를 가져오거나 설정합니다. |
IList<T>.RemoveAt(Int32) |
모든 경우에 NotSupportedException 예외를 throw합니다. |
IReadOnlyList<T>.Item[Int32] |
배열 세그먼트의 지정된 인덱스에서 요소를 가져옵니다. |
확장 메서드
적용 대상
추가 정보
.NET