マッピィ Techlog

日々思うこと

【C#】ImmutableArrayについて

解説についてはMicrosoft .NET Blogでされています。
https://devblogs.microsoft.com/dotnet/please-welcome-immutablearrayt/
公式なので信頼性はあります。

ImmutableListとの違いはパフォーマンス。
素数が16より小さい時は使うべきとあります。

ともかくサンプルを作ってみます。
.NetFrameworkではなく、.NetCoreで使えるようです。

using System.Collections.Immutable;

..(略)

static void Main(string[] args)
{
    var array = ImmutableArray.Create(1, 2, 3);
    array.Add(4);
    foreach (var e in array)
    {
        Console.WriteLine(e);
    }
    Console.ReadLine();	// 入力待ち
}

Immutable(不変)と言っている割にAddが用意してあるようなので使ってみましたが、反映されませんでした。
これはどういうことなんだろうか…。



今回の議論出発点は以下の書籍の項目3からでした。

More Effective C# 6.0/7.0

More Effective C# 6.0/7.0