Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 11 odgovora
  • 4.399 pregleda

Najnovija ↓

Red iz 2D niza u 1D 22.06.2016. u 21:38 · pre 126 meseci #1
Zna li neko neki ELEGANTAN način da se izvuče željeni red iz 2D niza u 1D niz u C# ? Otprilike mi treba ovo kao na slici



Znači NE preko For petlji!

Unapred se zna dimenzija matrice i elementi moraju biti tipa object.
Potpis
rs.ceevee.com/nenad.curcic
Re: Red iz 2D niza u 1D 23.06.2016. u 11:02 · pre 126 meseci #2
Koju tranformaciju koristis?

Tehnicki mozes da koristis LINQ za takve stvari, ali LINQ ti je u osnovi set glorifikovanih for operacija :) Ne vidim kako mozes da iteriras preko bilo cega bez petlji?
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Red iz 2D niza u 1D 23.06.2016. u 11:55 · pre 126 meseci #3
Ovaj kod ce ti npr izvuci sve kolone iz matrice i sumirati njihove elemente, mozes to da adaptiras na svoj primer


Code (csharp):

var inputArray = new int[,] { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 },
{ 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 },
{ 21, 22, 23, 24, 25 }, { 26, 27, 28, 29, 30 } };

inputArray.Dump();

var l = (from el in inputArray.Cast<int>().Select((e, i) => new { e, c = i % inputArray.GetLength(1) })
          group el by el.c into groups
          select groups.Sum(g => g.e)).ToArray();
         
l.Dump();
 


Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Red iz 2D niza u 1D 23.06.2016. u 13:35 · pre 126 meseci #4
A mozda je trivijalno?
Code:
outputRange = inputArray[nekiIndex];
Re: Red iz 2D niza u 1D 23.06.2016. u 13:46 · pre 126 meseci #5
Pa zapravo fora je sto prvo citam Excel.Range is excela i njega mogu direktno da smestim u neki object[,] inputArray, sad ne znam da li mogu kao sto Ravni kaze direktno daj array da smestim u 1D array, mislim da ne moze. I sto ne moze object da se casta u string.
Potpis
rs.ceevee.com/nenad.curcic
Re: Red iz 2D niza u 1D 23.06.2016. u 15:41 · pre 126 meseci #7
Sa Buffer.BlockCopy moze ako je u matrici int ili double ili char, znaci neki prost tip podataka za koji znas koliko mesta zauzima. To mi ne radi za Object. For ne dolazi u obzir kao sto rekoh... :)
Potpis
rs.ceevee.com/nenad.curcic
Re: Red iz 2D niza u 1D 23.06.2016. u 15:44 · pre 126 meseci #8
A mora li biti 2D niz? Ako mozes da koristis niz nizova ([][] format umesto [,]), onda je lako, samo navedes index reda i dobijas niz koji sadrzi elemente u tom redu.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Red iz 2D niza u 1D 23.06.2016. u 15:55 · pre 126 meseci #9
Moze object[][] ako mozes range iz excela da prebacis u takav niz. Kolko videh u nekom primeru na netu lik je uradio nesto tipa

Code:

Excel.Range range = .... ;
object[][] inputArray = ((object[][])range).value;


al to kod mene nije radilo, nego pucalo.

Radi dobro samo:
Code:

object[,] inputArray = range.value;
Potpis
rs.ceevee.com/nenad.curcic
Re: Red iz 2D niza u 1D 23.06.2016. u 16:16 · pre 126 meseci #10
Prvo i osnovno pitanje je zašto for petlja ne dolazi u obzir? Koji je razlog?

Drugo, pošto već radiš sa Excel.Range objektom možda možeš da pozoveš neku Excel funkciju nad tim objektom koja upravo radi to što ti treba?
Re: Red iz 2D niza u 1D 23.06.2016. u 16:19 · pre 126 meseci #11
Nije moguće napraviti to što hoćeš bez iteracija.
Iteracije možeš dobiti na razne načine, petljama, rekurzijom, ...
Tako da je tvoj zahtev da se ne koriste petlje čudan i besmislen.


Re: Red iz 2D niza u 1D 23.06.2016. u 22:46 · pre 126 meseci #12
Napravljeno je bez, sutra ću ako stignem postovati rešenje. Ne može sa iteracijama jer je to sporo za ono što meni treba. Ali hvala na idejama! :)
Potpis
rs.ceevee.com/nenad.curcic
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme