参考
この記事は、以下の動画を参考にしています。
詳しくは、動画をご覧ください。
オブジェクト初期化子で、インデクサーにIndexを渡す
現時点(2024年5月)ではC#13のプレビュー機能です。
プロジェクトのLangVersion
をPreview
にする必要があります。
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>Preview</LangVersion>
</PropertyGroup>
オブジェクト初期化子で、インデクサーにIndexを渡すことができます。
class MyClass
{
public int[] Numbers { get; } = new int[4];
}
var obj = new MyClass
{
Number =
{ // オブジェクト初期化子
[^4] = 4, // 最後の要素から4つ目
[^3] = 3,
[new Index(value: 2, fromEnd: true)] = 2, // 最後の要素から2つ目
[new Index(value: 1, fromEnd: true)] = 1,
},
};
// obj.Numbers は [ 4, 3, 2, 1 ] となる