20. april 2008 - 15:49Der er
14 kommentarer og 1 løsning
hjælp til foreach
Hey, nogen som kan hjælpe med min foreach så den virker?, jeg har prøvet at lave den således at den finder dato og om den er "ok", men der er p.t. fejl i min kode
Flaske f1 = new Flaske("ow", new DateTime(2008, 05, 21), "ok", 43), f2 = new Flaske("ow2",new DateTime(2008, 05, 20), "ok", 45);
List<Flaske> Flaskeliste = new List<Flaske>(); Flaskeliste.Add(f1); Flaskeliste.Add(f2);
DateTime dateToFind = (new DateTime (2008, 05, 21));
foreach (Flaske dato in Flaskeliste) { if (dato > dateToFind && "ok") { checkedListBox1.Items.Add(dato.ToString()); } }
Den må give nogen problemer med mindre din Flaske er en Datetime ...
Hvordan ser din flaske klasse ud ?
Indtil videre ville jeg gætte mig til: foreach (Flaske f in Flaskeliste) { if (f.Dato > dateToFind && f.Status == "ok") { checkedListBox1.Items.Add(dato.ToString()); } }
&& "ok" ... hvad skal den teste ... noget som står i Flaske klassen ?
Det er 100% gætteri da du ikke har meget med om din flaske klasse ..
Så problemet er at jeg skal have lavet en foreach som løber min liste af flasker igennem (Flaskeliste) og søger på datoen og på "ok", som måske skal laves til(true/false)
Her er flaske objektet: new Flaske("ow", new DateTime(2008, 05, 21), "ok", 43)
og her er hvordan den laves public Flaske(string Reservering, DateTime dato, string Tilstand, int FlaskeID) :
foreach(Flaske f in Flaskeliste) { if(f.PropertyDato > dateToFind && f.PropertyTilstand == "ok") { checkedListBox1.Items.Add(f); } } en anden måde at gøre det
kan du også lave foreach når jeg har lavet disse modifikationer
Flaske klassen indeholder nu en type som hedder reservering, reservering består af en dato og et navn.
reservering public Reservering(string reserveringsnavn, DateTime dato)
nye flaske public List<Reservering > reserveringsliste = new List<Reservering >() public Flaske(Reservering Reservering, string Tilstand, int FlaskeID) : { reserveringsliste.Add(Reservering); }
og man kan hente reserveringer fra flaskeobjektet: public Reservering getReservation(int index) { return reserveringsliste[index]; }
outputtet er en override af ToString fra reservering public override string ToString() { return PropertyReserveringsnavn + "dato" + PropertyDato;
}
Så jeg skal have lavet lykken som gennemløber alle i indexet, men problemet er så hvordan jeg ved hvor mange som er i listen, er der en metode, så den bare løber alle igennem: (jeg forestiller mig at lykken bliver placeret i flaskeklassen, og således er en ny metode):
public Reservering FINDALL(DateTime dato) {
foreach(Reservering r in reserveringsliste) { if(r.PropertyDato == dato) { return r.PropertyDato; } }
hvis PropertyDato er en DateTime ... så kan du ikke gøre det ...
Hvad compiler du med ? Den burde brokke sig ... og faktisk fortælle dig hvad der går galt ... og så er det jo bare at rette de fejl ... også nemmere hvis du poster dem, altså fejlene ...
det er desværre en DateTime. Jeg læser batchlor i IT på andet semester, desværre har vi kun haft en måneds undervisning i c# og det er de færreste af os som har forsået det på et niveau, så vi kan kode :)
De outputs fra VS 2008 kan jeg p.t. ikke bruge til så meget, da jeg ikke helt forstår hvor jeg skal rette, men jeg skal nok huske at skrive dem i mine indlæg.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.