Forum » Programiranje » [c#] seštevanje itemov v checkedListBoxu
[c#] seštevanje itemov v checkedListBoxu
bananaman12 ::
Zdravo! rabil bi pomoč pri seštevanju več itemov v checkedListBoxu. Primer:
imam 6 filmov in vsak ima določeno ceno. želim narediti tako da če bo uporabnik obkljukal vse filme se bodo te vse cene skupaj seštele in MessageBox bo izpisal vsoto. Hkrati pa tudi želim narediti da če bo uporabnik obkljukal le 2 ali več filmov da bo tudi ta 2 ali 3 ali 4 cene filmov seštel.
Upam da kdo razume kaj mislim s tem in bi mi res prišla kakšna pomoč.
imam 6 filmov in vsak ima določeno ceno. želim narediti tako da če bo uporabnik obkljukal vse filme se bodo te vse cene skupaj seštele in MessageBox bo izpisal vsoto. Hkrati pa tudi želim narediti da če bo uporabnik obkljukal le 2 ali več filmov da bo tudi ta 2 ali 3 ali 4 cene filmov seštel.
Upam da kdo razume kaj mislim s tem in bi mi res prišla kakšna pomoč.
cekr ::
Najprej naredi en class, v katerega postavi vse propertye, ki se vežejo na posamezen film.
Potem v list(of tvojclass) nafilaj filme z vsemi pripadajočimi podatki.
Ta list pa bindaj oz. popiši na ckeckedListBox. (obstoječi ckeckedListBox je bolj socialen)
----
Potem imaš pa dve variante:
- dogodek po spremembi v ckeckedListBoxu
- dodaš gumb, ki proži seštevanje
---
Po dogodku:
-poglje, kateri filmi so obkljukani
-poberi indexe le teh in iz list poberi izbrane filme.
Ko boš imel list(of tvojClass) z izbranimi filmi pa pride na vrsto LINQ, ki ti reši vse tvoje tegobe v eni vrstici.
Potem v list(of tvojclass) nafilaj filme z vsemi pripadajočimi podatki.
Ta list pa bindaj oz. popiši na ckeckedListBox. (obstoječi ckeckedListBox je bolj socialen)
----
Potem imaš pa dve variante:
- dogodek po spremembi v ckeckedListBoxu
- dodaš gumb, ki proži seštevanje
---
Po dogodku:
-poglje, kateri filmi so obkljukani
-poberi indexe le teh in iz list poberi izbrane filme.
Ko boš imel list(of tvojClass) z izbranimi filmi pa pride na vrsto LINQ, ki ti reši vse tvoje tegobe v eni vrstici.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
mihies ::
Evo, v OnLoad testno naplnim, v button1_Click pa izračunam in prikažem vsoto. Upam, da je dovolj razumljivo.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } class Item { public string Text; public int Vrednost; public override string ToString() { return Text; } } protected override void OnLoad(EventArgs e) { if (!DesignMode) { Random rnd = new Random(); for (int i = 0; i < 4; i++) { int cena = rnd.Next(100); Item item = new Item { Text = string.Format("Film {0} stane {1}EUR", i, cena), Vrednost = cena }; checkedListBox1.Items.Add(item); } } base.OnLoad(e); } private void button1_Click(object sender, EventArgs e) { var izbirniki = checkedListBox1.CheckedItems.OfType<Item>(); MessageBox.Show(this, "Cena vseh izbranih filmov je " + izbirniki.Sum(i => i.Vrednost)); }
http://blog.rthand.com/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
Zgodovina sprememb…
- spremenil: mihies ()
cekr ::
To je čisto tako.
Enostavno.
Enostavno.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
mihies ::
če malo pomisliš dela tip za šolo
tko, da je bla tvoja rešitev preveč advanced :P
Seveda, naj dobi dobro oceno
Drugače je pa to malo enostavneje za šolo, če so lamde prehude:
int suma = 0; foreach (Item album in checkedListBox1.CheckedItems) { suma += album.Vrednost; }
http://blog.rthand.com/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] ukaz radirkaOddelek: Programiranje | 1120 (913) | japol |
» | [c#] picturebox, slika na slikoOddelek: Programiranje | 1089 (899) | japol |
» | [C#] Delo z okni - urejanje osebeOddelek: Programiranje | 990 (862) | darkolord |
» | [C#] Spreminjanje fahrenheitov v celzijeOddelek: Programiranje | 1374 (1229) | blackwing |
» | C# ProgramOddelek: Programiranje | 3104 (2027) | Spura |