나는이 기능이 오버라이드 (override) :ObservableCollection에이 항목을 추가하고 다른 사람이
ObservableCollection<TankstellenItem> completeList = new ObservableCollection<TankstellenItem>();
for(var j = 0; j < listItem.Count; j++)
{
foreach (FuelItem fItem in listItem.ToList()[j].Fuels)
{
Debug.WriteLine("HERE AGAIN: " + fItem.Price);
TankstellenItem newItem = new TankstellenItem();
ObservableCollection<FuelItem> fuelList = new ObservableCollection<FuelItem>();
newItem = listItem.ToList()[j];
newItem.Fuels = null;
fuelList.Add(fItem);
newItem.Fuels = fuelList;
completeList.Add(newItem);
Debug.WriteLine("PRICES: " + completeList.ToList()[0].Fuels[0].Price);
}
}
Debug.WriteLine("COMPLETELIST LENGTH: " + completeList.ToList()[0].Fuels[0].Price + " + " + completeList.ToList()[1].Fuels[0].Price);
및 결과는 다음과 같습니다 당신은 가격이 다른 foreach 문을 받으시는 수 있듯이
LISTITEM LENGTH: 1
HERE AGAIN: 1,699
PRICES: 1,699
HERE AGAIN: 1,529
PRICES: 1,529
COMPLETELIST LENGTH: 1,529 + 1,529
. 그러나 for-method 후에는 모든 항목에서 출력이 1,529에 불과합니다. 나는 이것이 왜 일어나는 지 이해하지 못한다.
하시겠습니까) 당신이하는 전화. 그건 단지 arrrays (나는 그들이 배열 인 것 같아요)의 복사본을 불필요하게 만드는 것입니다. 또한 변수 newItem을 사용하지 않은 새 객체 인스턴스에 할당하지 않고 선언 할 수 있습니다. –
여기에 listItem (type)이란 무엇입니까? 어떻게 정의됩니까? – nkchandra
listItem이 원래 ObservableCollection –
newone