Метод ToImmutableList
Метод ToImmutableList является расширением
для IEnumerable<T>, которое строит
ImmutableList<T>
из последовательности или List<T>.
Синтаксис
ImmutableList<T> imm = source.ToImmutableList();
Пример
Давайте заморозим List:
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
ImmutableList<int> imm = nums.ToImmutableList();
Console.WriteLine(string.Join(" ", imm));
}
}
Результат выполнения кода:
1 2 3 4 5
Пример
Давайте убедимся, что List можно менять отдельно:
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
ImmutableList<int> imm = nums.ToImmutableList();
nums[0] = 10;
Console.WriteLine(imm[0]);
}
}
Результат выполнения кода:
1
Пример
Давайте создать из массива:
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
class Program
{
static void Main()
{
ImmutableList<int> imm = new[] {1, 2, 3, 4, 5}.ToImmutableList();
Console.WriteLine(imm.Count);
}
}
Результат выполнения кода:
5
Пример
Давайте заморозить строки:
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
class Program
{
static void Main()
{
List<string> items = new List<string> {"a", "b", "c", "d", "e"};
ImmutableList<string> imm = items.ToImmutableList();
Console.WriteLine(imm[2]);
}
}
Результат выполнения кода:
"c"
Смотрите также
-
метод
ToBuilder,
который правит пачкой перед freeze -
метод
ToImmutableArray,
который замораживает массив -
класс
List,
который можно преобразовать -
метод
Add,
который расширяет immutable список