【C#】リストの末尾を消去する(LINQ)

LINQを使ってリストの末尾を消去する方法を紹介します。

RemoveAt()|元のリスト自体を変更する

リストに対してRemoveAt(リストの要素数 – 1)を呼び出すことで、そのリスト自体の末尾を削除できます。

public  class Program
{
    static void Main(string[] args)
    {
        // 対象の数列リスト
        var numbers_01 = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        // 末尾を削除(元のリスト自体を変更)
        numbers_01.RemoveAt(numbers_01.Count - 1);

        // 表示(確認用)
        foreach (var number in numbers_01)
        {
            Console.Write($"{number} ");
        }
    }
}

1 2 3 4 5 6 7 8 9

Take()|新しいリストとして作成する

リストに対してTake(リストの要素数 – 1)を呼び出すことで、そのリストの末尾を削除したリストを取得できます。元のリストは変更されません。

(厳密にはIEnumerable<T>シーケンスが取得できます。リストに変換したい場合は以下の例のように末尾でToList()を呼び出してください。List<T>型になります。)

public  class Program
{
    static void Main(string[] args)
    {
        // 対象の数列リスト
        var numbers_02 = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

        // 末尾を削除(新しいリストとして取得)
        var convertNumber_02 = numbers_02.Take(numbers_02.Count - 1).ToList();

        // 表示(確認用)
        foreach (var number in convertNumber_02)
        {
            Console.Write($"{number} ");
        }
    }
}

1 2 3 4 5 6 7 8 9

コメント