dev
.NET Spec
.NET Spec

Wonny (워니)·생성일 2022년 04월 12일 05:08·마지막 수정일 2022년 04월 12일 05:08
Collections
Immutable
ImmutableArray Class
한 번 생성되면 변경될 수 없는 배열
using System.Collections.Immutable;
var firstList = ImmutableArray.Create<string>();
foreach (string item in firstList) {
Console.Write(item); // 아예 실행 안됨
}
/*
* Parameters
* - params T[]?: 배열로 생성하고자 하는 아이템 리스트
*/
var secondList = ImmutableArray.Create("A", "B", "C", "D", "E");
foreach (string item in secondList) {
Console.Write(item); // ABCDE
}
Console.WriteLine();
/*
* Parameters
* - ImmutableArray<T> items: 복사할 배열
* - Int32 start: 어느 인덱스부터 복사할 것인지
* - Int32 length: 몇 개를 복사할 것인지
*/
var thirdList = ImmutableArray.Create(secondList, 2, 3);
foreach (string item in thirdList) {
Console.Write(item); // CDE
}
Console.WriteLine();
/*
* Parameters
* - T[] items: 복사할 배열
* - Int32 start: 어느 인덱스부터 복사할 것인지
* - Int32 length: 몇 개를 복사할 것인지
*/
var fourthList = ImmutableArray.Create(new []{"A", "B", "C", "D", "E"}, 0, 3);
foreach (string item in fourthList) {
Console.Write(item); // ABC
}
Console.WriteLine();
Console.WriteLine(fourthList[1]); // B
fourthList[1] = "A"; // compile error: The indexer 'System.Collections.Immutable.ImmutableArray<T>.this' has no setter