Count listbox items

Status
Niet open voor verdere reacties.

rambomambo

Gebruiker
Lid geworden
9 dec 2012
Berichten
163
Ik heb al vanalles geprobeert maar zou willen in een 2de listbox een count willen doen van hoeveel vogels er totaal in alle bomen zitten
en ofwel krijg ik 0 ofwel 1 ofwel een random getal dat niet klopt

hieronder vind u de code dat in mijn 1ste listbox moet komen in een klasse staat er alleen een array met welke soort bomen
de vogelhoeveelheid per boom die van 1tot 10 is en de boomhoogte
en ook de random staat in mijn klasse

nu zou ik dus alleen willen hebben dat er in mijn 2de listbox de som word gemaakt van alle vogels die in de 10bomen aanwezig zijn

Random boomhoogte = new Random();
BoomKlasse BoomRandom = new BoomKlasse();

for (int i = 0; i < 10; i++)
{
int boom = BoomRandom.randomBoom.Next(BoomRandom.bomen.Length);
int hoogte = BoomRandom.randomBoomhoogte.Next(BoomRandom.hoogte.Length);
int vogel = BoomRandom.randomVogel.Next(BoomRandom.vogels.Length);


lbMaak.Items.Add(i + 1 + " " + BoomRandom.bomen[boom].ToString() + ": " + "hoogte "
+ BoomRandom.hoogte[hoogte].ToString() + "cm " + "en" + " " +
BoomRandom.vogels[vogel].ToString() + " vogels");




}

en mijn klasse


public class BoomKlasse
{
public string[] bomen = { "Loofboom", "Naaldboom" };
public Random randomBoom = new Random();

public int [] hoogte = { 7,8,9,10 };
public Random randomBoomhoogte = new Random();


public int[] vogels = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
public Random randomVogel = new Random();




}
}
 
He Rambo,

Wat weet je eigenlijk van klassen? Ken je bijvoorbeeld het begrip encapsulatie? Je klasse wordt vele malen beter en je programma vele malen overzichtelijker als je je klasse anders opzet.

Ik ben, mede door je andere vragen, nogal benieuwd naar je achtergrond. Dat helpt te helpen. Snap je?

Erik
 
Ik ben het het met Erik eens: Jou klasse en de manier hoe je hem gebruikt is niet erg handig.
Volgens mij is het de beoeling dat je uiteindelijk een lijst krijgt met 10 bomen (instantiaties van de klassen boom) die allemaal hun eigen waarde hebben voor de eigenschappen soort,hoogt, vogels.
Deze lijst kun je dan gebruiken waarvoor je wil bv koppelen aan listbox of totaal bepalen .

Hierbij een mijn idee welke kant je op zou moeten (de code is ongetest dus er kan evt een typ fout instaan)

Class Boom
Code:
public class Boom
	{
                private string boomSoort;
		private int hoogte;
		private int vogels;


		public string BoomSoort 
		{ 
			get { return boomSoort; } 
		}

		public int Hoogte
		{
			get { return hoogte; }
		}

		public int Vogels
		{
			get { return vogels; }
		}

		public Boom(string boomSoort, int hoogte, int vogels)
		{
			this.boomSoort = boomSoort;
			this.hoogte = hoogte;
			this.vogels = vogels;
		}

	}

Vervolgens kun je een lijst met bomen aanmaken:

Code:
                        string[] soorten = { "Loofboom", "Naaldboom" };
			int[] hoogte = { 7, 8, 9, 10 };
			int[] vogels = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

			List<Boom> bos = new List<Boom>();

			Random random = new Random();
			for (int i = 0; i < 10; i++)
			{
				string boomsoort = soorten[random.Next(0, soorten.Length)];
				int boomHoogte = hoogte[random.Next(0, hoogte.Length)];
				int vogelsInBoom = vogels[random.Next(0, vogels.Length)];

				Boom boom = new Boom(boomsoort, boomHoogte, vogelsInBoom);
				// Je hebt nu een object boom gevuld  en die kun je aan een lijst toevoegen en later weer opvragen
				bos.Add(boom);
			}

Nu heb je een lijst met objecten van het type boom. Hier kan je meedoen wat je wilt aan listbox kopplen of totaal van alle vogels opvragen:


Code:
	int totaalaantalvogels = bos.Sum(e => e.Vogels);
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan