2Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
756
756
EMPFEHLEN
-
23.01.11 01:08 #1
Da schreib ich nun, hab mehrere Links durchforstet - und weiß, dass ich im Endeffekt hier die besten Antworten bekomme.
Gegeben ist ein Algorithmus, der mir mehrere Int-Listen in Laufzeit erstellt, nicht nacheinander, sondern die Listen werden quer gefüllt. Mal wird dem ersten Array eine Zahl hinzugefügt, dann dem 4., just wieder eine neue leere Liste erstellt, dann wieder mal dem 2. etc.pp. Am Ende habe ich ein zweidimensionales Array mit zB 8 Listen von verschiedener Länge.
So einfach es ist, in php, ein Array dynamisch aufzufüllen, so schwer gestaltet sich die Sache jetzt unter c# - für mich.. Mit vielrumkopieren und wieder in Listen packen, danach für die Ausgabe wieder entpacken ist mir nicht geholfen - eine statische Liste/Array hilft auch nicht, da ich keine Ahnung habe, ob es 8 oder 64 Listen sein werden, dynamisch eben.
Ich hab mir das Konzept von Listen in Listen (list<list<int>>) angeschaut, doch wie es ausschaut, muß ich erst die innere Liste fertigstellen, bevor ich sie in die äußere packen kann.
Nun denn, langer Rede kurzer Sinn, so sehen die Daten zB aus:
Und so sieht der Befehl aus, den ich grad aus JS umsetzen will:Code :1 2 3 4
Cluster[0]=(0,3,7,9,12,34,36) Cluster[1]=(2,10,11,13) Cluster[2]=(17,18,19,20,21,22,23,24,25) Cluster[3]=(8,14,15,16,54,55,56)
Code :1
Cluster[C].push[i];
Wie mach sowas nun ohne Riesenrattenschwanz unter .net/c#?
mfg chmeeGeändert von chmee (23.01.11 um 10:42 Uhr)
Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
-
Das spielt doch bei Listen keine Rolle. Mit Listen kannst du in c# im Prinzip genauso werkeln wie in php mit arrays.eine statische Liste/Array hilft auch nicht, da ich keine Ahnung habe, ob es 8 oder 64 Listen sein werden, dynamisch eben.
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
List<List<int>> fooBar = new List<List<int>>(); /* beliebige Anzahl an Listen hinzufügen */ Random rnd = new Random(); int listCount = rnd.Next(0, 64); for (int i = 0; i < listCount; i++) { fooBar.Add(new List<int>()); } /* Verschiedenen Listen neue Elemente hinzufügen */ for (int i = 0; i < 100; i++) { int listIndex = rnd.Next(0, fooBar.Count); fooBar[listIndex].Add(rnd.Next()); }
Du kannst aber auch die push Methode für "standard" Arrays implementieren.
Beispielsweise so:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12
public static class ArrayExtensions { public static T[] Push<T>(this T[] array, T val) { T[] temp = new T[array.Length + 1]; array.CopyTo(temp, 0); temp[temp.Length - 1] = val; return temp; } }
Code csharp:1 2
int[] bla = new int[] { 0, 1 }; bla = bla.Push(2);
In order to understand recursion, one must first understand recursion.
-
Nein. Instanzen von List-Klassen kann man weder als "fertig" noch als "unfertig" bezeichnen. Du kannst zu jeder Zeit Items hinzufügen oder entfernen (außer die Instanz ist Readonly). Du kannst also problemlos Folgendes machen:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14
List<List<int>> masterliste = new List<List<int>>(); List<int> subliste1 = new List<int>(); subliste1.Add(123); masterliste.Add(subliste); subliste1.Add(456); List<int> subliste2 = new List<int>(); masterliste.Add(subliste); subliste1.Add(789); subliste2.Add(42); // oder auch wieder eine Subliste entfernen masterliste.Remove(subliste1); // oder nur den Inhalt einer Subliste entfernen subliste2.Clear(); // usw.
Geändert von Shakie (23.01.11 um 16:04 Uhr)
hihi = -h²
-
23.01.11 18:46 #4
Danke Euch Beiden - Tatsächlich ist es so, dass ich in blindem Eifer so gecodet habe, wie Ihr es beschreibt. Es funktionierte nicht, immer wieder eine Exception wegen falschem Index.. Als ob es die "Listenstelle" zB 3 noch nicht gab. Andere Seiten haben immer wieder lediglich das von mir genannte Beispiel genannt (innere Liste, dann äußere), wodurch ich dachte, es ginge nicht. Nachdem ich hier den ersten Eintrag gelesen hab, einfach genauer hingeschaut und siehe da, der Fehler war, dass ich die Initialisierung der inneren Liste zweimal gemacht habe - vor dem Funktionsaufruf und innerhalb der Funktion.
Kurz und Bündig. ich danke Euch vielmals - Vor Allem hat die Welt ein weiteres Beispiel für mehrdimensionale Listen bekommen (und von mir ein Sorry, es war spät und ich war nicht mehr ganz dabei, scheinbar..)
mfg chmeeMein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
Ähnliche Themen
-
Mehrdimensionales Array - zu - Eindimensionales Array (Mehrheit gewinnt)?
Von Blaafer im Forum PHPAntworten: 2Letzter Beitrag: 25.12.08, 07:07 -
Mehrdimensionales Array zum einfachen Array imploden
Von Papenburger im Forum PHPAntworten: 5Letzter Beitrag: 30.04.07, 15:03 -
[c++] Mehrdimensionales Array
Von WhiteNazgul im Forum C/C++Antworten: 5Letzter Beitrag: 18.11.03, 20:55 -
Mehrdimensionales Array
Von Texaner im Forum Javascript & AjaxAntworten: 8Letzter Beitrag: 17.11.03, 19:56 -
mehrdimensionales array
Von kimbo im Forum PHPAntworten: 2Letzter Beitrag: 26.10.03, 09:55






Zitieren
Login





