どうも、ちょげ(@chogetarou)です。
配列(Array)の指定したインデックスの要素をLinqを使って削除する方法を紹介します。
方法

配列(Array)の特定のインデックスの要素をLinqを使って削除するには、Where()を使います。
まず、System.Linqを導入します。
using System.Linq;
次に、配列からWhere()を呼び出します。
Where()の引数に、引数を2つ持つラムダ式を指定します。
そして、ラムダ式で「第2引数 != インデックス」のような条件式を返します。
あとは、Where()からToArray()を呼び出し、ToArray()の戻り値を配列に代入します。
array = array.Where((value, index) => index != インデックス).ToArray();
これで、Where()のラムダ式で返す条件式の「!=」の右側のインデックスを配列から削除できます。
使用例
using System;
using System.Linq;
public class Example
{
public static void Main()
{
int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
numbers = numbers.Where((value, index) => index != 3).ToArray();
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
}

コメント