次のコードがあります。
// Order a list
var orderedList = myList.OrderBy(x => x.name);
// Take few elements to another list (copies as reference)
List<GameObject> myList2 = orderedList.Where(x => x.z == y).ToList();
// Rename the objects in myList2
foreach(stuff in myList2)
{
stuff.name = "Renamed";
}
問題は、myList2 内のオブジェクトのプロパティを変更すると、orderedList の順序が変更されるのはなぜですか?
たとえば、順序付きリストが「a,b,c,d」で、「b」と「c」を myList2 に取り込んだとします。その場合、orderedList は" a,Renamed, Renamed, d "ではなく" a,d,Renamed,Renamed"になります。