J'ai un peu de problème. J'ajoute des nombres à ArrayList
comme 156, 340 (quand c'est TransferIn
ou Buy
) etc. et puis je les enlève le faire comme 156, 340 (quand c'est TransferOut
, Sell
). La solution suivante fonctionne pour cela sans problème. Le problème que j'ai, c'est que pour certaines anciennes données, les employés saisissaient la somme comme 1500 au lieu de 500 + 400 + 100 + 500. Comment est-ce que je le changerais de sorte que quand il y a Sell/TransferOut et qu'il n'y ait aucune correspondance dans ArrayList il devrait essayer d'ajouter plusieurs éléments de cette ArrayList et trouver des éléments qui se combinent dans l'ensemble.Problème de comptage C#
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;
}
}
Lorsque vous cliquez sur ce cas particulier, triez le tableau et commencez à additionner les éléments jusqu'à ce que vous atteigniez/transmettez la valeur (1500 dans votre exemple). Si vous le frappez alors vous avez une combinaison que vous pouvez transférer, sinon .. il n'y a pas une telle combinaison, aller de l'avant ... :) – tzup
@tzup - pas vrai. Considérons les éléments «1 12 100» et la valeur «101». Vous devez sommer «1 + 12 = 13» puis «100 + 13 = 113» et dire qu'il n'y a pas de solution, alors qu'en fait il y en a. – IVlad
vous avez raison, je suppose que je tapais beaucoup plus vite que je pensais. – tzup