Entwickler-Ecke

Sonstiges (.NET) - String mit Zahlen zerlegen und in Pointf[][] umwandeln


Azzidodabass - Do 01.11.12 12:48
Titel: String mit Zahlen zerlegen und in Pointf[][] umwandeln
Hallo an alle,

ich zerlege einen String aus Zahlen in Teilstücke und übergebe jede einzelne Zahl dann an ein ArrayList element:


C#-Quelltext
1:
2:
3:
4:
 foreach (string item in split)
{
_Data.Add(new PointF(_Data.Count / 2f, (float)Convert.ToDouble(item)));
}


Dieser wird dann an ein PointF[][] übergeben:

C#-Quelltext
1:
Data = new PointF[][] { (PointF[])_Data.ToArray(typeof(PointF)) };                    


Wie könnte ich es realisieren, dass ich mehrere Strings zerlege und jedes dem Pointf[][] zuweise?

Also zum Beispiel für 3 Strings:
1,2,3,4
5,6
7,8,9,10

Diese werden dann zerlegt und dem Pointf[][] zugewiesen

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Pointf[0][0] = 1
Pointf[0][1] = 2
........
Pointf[1][0] = 5
Pointf[1][1] = 6
........
Pointf[2][0] = 7
Pointf[2][1] = 8
Pointf[2][2] = 9
..........


Ich hoffe, Ihr könnt mir helfen.

Danke im Voraus

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Palladin007 - Do 01.11.12 13:43

So ganz versteh ich nicht, was du jetzt vor hast.

Du hast also einen String aus Zahlen. Sind die Zahlen durch Kommata getrennt, oder nicht?

Wenn die Zahlen durch Kommata getrennt sind, kannst du simpel die Methode Split nehmen:

C#-Quelltext
1:
string[] nums = text.Split(new Char [] {','});                    


Wenn die Zahlen nicht durch Kommata getrennt sind und auch kein anderes Trennzeichen bekannt ist, dann musst du den Text manuell zerschnippeln.
Wenn du nun weißt, dass jede Zahl nur von 0 bis 9 sein kann, dann geht das einfach mit Substring, was dann so aussieht:

C#-Quelltext
1:
2:
3:
4:
5:
string[] nums = new string[text.Length];
for (int i = 0; i < 0; i++)
{
    nums[i] = text.Substring(i, 1);
}


Es kommt bei beiden Varianten ein Array heraus, das aus den Zahlen des Strings besteht. Bei deinem ersten Beispiel sieht das dann so aus:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
nums
{
    [0]=>"1"
    [1]=>"2"
    [2]=>"3"
    [3]=>"4"
}



Wenn du nun ein mehrdimensionales Array hast, ist das auch nicht weiter schwer.
Du hast dann einfach dein Array, das die Texte enthält und erstellst ein Array, das die gleiche Länge hat, wie das Text-Array.
Mit einer simple for-Schleife arbeitest du dann das Text-Array ab und speicherst die erarbeiteten Array mit den Zahlen in das Pointf-Array an dem Index, den du auch beim Text-Array genutzt hast. Lässt sich also simpel in einer for-Schleife abklären.