Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Red iz 2D niza u 1D

[es] :: .NET :: Red iz 2D niza u 1D

[ Pregleda: 2913 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cure126
Srbija, Uzice

Član broj: 67027
Poruke: 227
*.dynamic.isp.telekom.rs.



+2 Profil

icon Red iz 2D niza u 1D22.06.2016. u 20:38 - pre 95 meseci
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.
rs.ceevee.com/nenad.curcic
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 10:02 - pre 95 meseci
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?
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ć
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 10:55 - pre 95 meseci
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();
 



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ć
Prikačeni fajlovi
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 12:35 - pre 95 meseci
A mozda je trivijalno?
Code:
outputRange = inputArray[nekiIndex];
 
Odgovor na temu

cure126
Srbija, Uzice

Član broj: 67027
Poruke: 227
*.static.isp.telekom.rs.



+2 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 12:46 - pre 95 meseci
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.
rs.ceevee.com/nenad.curcic
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 13:49 - pre 95 meseci
Postoji nekoliko načina, pomoću Buffer.BlockCopy, ili pomoću LINQ, ili nova funkcija koja radi šta treba pomoću for petlje:

http://stackoverflow.com/quest...-of-a-double-rectangular-array
 
Odgovor na temu

cure126
Srbija, Uzice

Član broj: 67027
Poruke: 227
*.static.isp.telekom.rs.



+2 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 14:41 - pre 95 meseci
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... :)
rs.ceevee.com/nenad.curcic
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 14:44 - pre 95 meseci
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.
 
Odgovor na temu

cure126
Srbija, Uzice

Član broj: 67027
Poruke: 227
*.static.isp.telekom.rs.



+2 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 14:55 - pre 95 meseci
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;

rs.ceevee.com/nenad.curcic
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 15:16 - pre 95 meseci
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?
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 15:19 - pre 95 meseci
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.


 
Odgovor na temu

cure126
Srbija, Uzice

Član broj: 67027
Poruke: 227
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: Red iz 2D niza u 1D23.06.2016. u 21:46 - pre 95 meseci
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! :)
rs.ceevee.com/nenad.curcic
 
Odgovor na temu

[es] :: .NET :: Red iz 2D niza u 1D

[ Pregleda: 2913 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.