У меня небольшая проблема. Я добавляю числа к ArrayList
как 156, 340 (когда это TransferIn
или Buy
) и т. Д., А затем я удаляю их, делая это как 156, 340 (когда это TransferOut
, Sell
) Следующее решение работает для этого без проблем. У меня проблема в том, что для некоторых старых данных сотрудники вводили сумму как 1500 вместо 500 + 400 + 100 + 500. Как бы я изменил его так, чтобы при наличии Sell / TransferOut и отсутствии совпадения внутри ArrayList он пытался добавить несколько элементов из этого ArrayList и найти элементы, которые объединяются в совокупность.
ArrayList alNew = new ArrayList();
ArrayList alNewPoIle = new ArrayList();
ArrayList alNewCo = new ArrayList();
string tempAkcjeCzynnosc = (string) alInstrumentCzynnoscBezNumerow[i];
string tempAkcjeInId = (string) alInstrumentNazwaBezNumerow[i];
decimal varAkcjeCena = (decimal) alInstrumentCenaBezNumerow[i];
decimal varAkcjeIlosc = (decimal) alInstrumentIloscBezNumerow[i];
int index;
switch (tempAkcjeCzynnosc) {
case "Sell":
case "TransferOut":
index = alNew.IndexOf(varAkcjeIlosc);
if (index != -1) {
alNew.RemoveAt(index);
alNewPoIle.RemoveAt(index);
alNewCo.RemoveAt(index);
} else {
// Number without match encountred
}
break;
case "Buy":
case "TransferIn":
alNew.Add(varAkcjeIlosc);
alNewPoIle.Add(varAkcjeCena);
alNewCo.Add(tempAkcjeInId);
break;
}
}