| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 25.11.07 Prihlásený: 02.07.21 Príspevky: 101 Témy: 21 Bydlisko: Bratislava |
Mám 2 polia, v jednom sú indexy a v druhom hodnoty, chcem vymazať tie páry index a hodnota, kde hodnota = 0. Mám: Kód: int[] t_index = { 0, 1, 2, 3, 4 }; int[] t_value = new int[] { 1, 0, 2, 0, 7 }; Chcem vymazať tie indexy (t_index) a tie prvky (t_value), kde value = 0. (aby v t_index bolo {0,2,4} a v t_value bolo {1,2,7}) Ako to dosiahnúť? Vymazať prvky t_value by som vedel: Kód: t = t.Where(val => val != 0).ToArray(); ale neviem, ako vymazať aj príslušné indexy. Nejaký tip? Vďaka.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Prečo to riešiš cez dve polia, keď na toto máme Dictionary<T,K>? Zbytočne si komplikuješ robotu.
_________________ C#, PHP, ... |
|
Registrovaný: 25.11.07 Prihlásený: 02.07.21 Príspevky: 101 Témy: 21 Bydlisko: Bratislava | Napísal autor témy SuchSoft: 15.04.2015 9:11 | |
|
Preto, lebo som začiatočník a nevedel som o tom. :-o Ďakujem. Potrebujem ukladať do pamäte vektory a veľké riedke matice. Ale problém je, že ak chcem uložiť maticu o veľkosti n=50000, tak to nemôžem uložiť do 2D poľa n x n, ale musím uložiť do troch polí indexR, indexS, value, alebo do p x n (kde p je počet nenulových prvkov). Dictionary asi neumožňuje uložiť 2 indexy a jednu hodnotu. Takže pre vektory by to bolo riešenie, ale pre matice asi nie. // Spojený príspevok Str 15.04.15 10:04Ešte raz Ďakujem. Prišiel som na toto: Kód: t_index = t_index.Where(idx => t_value[idx] != 0).ToArray(); t_value = t_value.Where(val => val != 0).ToArray(); Keď som rozmýšľal, ako to funguje, nejako sa mi toto podarilo spraviť. (To je tým konzervatívnym myslením, ja som bol v tom, že v tá podmienka musí začínať idx..., no nemusí ) Díky. // Spojený príspevok Str 15.04.15 10:43ehm, ešte oprava: Kód: t_index = t_index.Where((val, idx) => t_value[idx] != 0).ToArray(); t_value = t_value.Where(val => val != 0).ToArray(); Takto je to správne.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|