私は C# を学んでおり、オブジェクトのリストを使用するタスクを実行しています。list.insert(index, object) を使用して、既にオブジェクトである位置に新しいオブジェクトを挿入すると、前のオブジェクトが置き換えられたと思いました!?
しかし、新しいものを挿入する前に list.removeAt(index) で最初に削除する必要があるようです。そうしないと、追加されたばかりで古いものがリストに残ります。これは正しいですか、それとも何か間違っていますか?
私は C# を学んでおり、オブジェクトのリストを使用するタスクを実行しています。list.insert(index, object) を使用して、既にオブジェクトである位置に新しいオブジェクトを挿入すると、前のオブジェクトが置き換えられたと思いました!?
しかし、新しいものを挿入する前に list.removeAt(index) で最初に削除する必要があるようです。そうしないと、追加されたばかりで古いものがリストに残ります。これは正しいですか、それとも何か間違っていますか?
Insert メソッドは、指定されたインデックスに新しいアイテムを挿入し、必要に応じてスペースを空けます。
list.Insert(1, "foo");
// Before After
//
// list[0] == "a" list[0] == "a"
// list[1] == "b" list[1] == "foo"
// list[2] == "c" list[2] == "b"
// list[3] == "c"
指定したインデックスの項目を置き換えたい場合は、リストのindexerを使用できます。
list[1] = "foo";
// Before After
//
// list[0] == "a" list[0] == "a"
// list[1] == "b" list[1] == "foo"
// list[2] == "c" list[2] == "c"
関連項目: インデクサー (C# プログラミング ガイド)
正解です。
しかし、指定したインデックスでリスト内のアイテムを置き換えたい場合は、
list[index] = newitem;