Ich habe einen Datensatz im String-Format. Das sind einige Koordinaten, die ich durch die Bildverarbeitung bekommen habe. Ich habe den Code angehängt, der diese (Koordinaten) extrahiert und in einem einzigen Array speichert. Aus diesen Koordinaten habe ich ähnliche Werte gefunden.erstellen unbekannte Anzahl von Arrays dynamisch und setzen Sie Werte auf
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Stack
{
class Program
{
static void Main(string[] args)
{
int count = 0;
//String which have my coordinates
string TextFile = "[(27, 37), (27, 38), (27, 163), (27, 164), (27, 266), (27, 267), (27, 356), (27, 357), (27, 448), (27, 449), (27, 528), (27, 529), (28, 37), (28, 38), (28, 163), (28, 164), (28, 266), (28, 267), (28, 356), (28, 357), (28, 448), (28, 449), (28, 528), (28, 529), (51, 163), (51, 164), (51, 266), (51, 267), (51, 356), (51, 357), (51, 448), (51, 449), (52, 61), (52, 62), (52, 163), (52, 164), (52, 266), (52, 267), (52, 280), (52, 305), (52, 306), (52, 356), (52, 357), (52, 448), (52, 449), (52, 504), (52, 505), (53, 61), (53, 62), (53, 280), (53, 281), (53, 305), (53, 306), (53, 504), (53, 505), (355, 61), (355, 62), (355, 280), (355, 281), (355, 305), (355, 306), (355, 504), (355, 505), (356, 61), (356, 62), (356, 280), (356, 281), (356, 305), (356, 306), (356, 504), (356, 505), (380, 37), (380, 38), (380, 528), (380, 529), (381, 37), (381, 38), (381, 528), (381, 529)]";
string splits = TextFile.TrimStart('[');
string[] split = TextFile.Split(')');
string split_1 = null;
string split_2 = null;
string split_3 = null;
int pos = 0;
int lengthOfString = 0;
int valX, valZ, valX1, valZ1 = 0;
/*
* Getting the count of the coordinates in the array
*/
foreach (string x in split)
{
count++;
}
string[] stringArr = new string[count];
/*
* Splitting the coordinates as x,y and store in an array
*/
foreach (string coord in split)
{
split_1 = coord;
split_1 = split_1.Trim('[');
split_1 = split_1.Trim('(');
split_1 = split_1.Trim(',');
split_1 = split_1.Trim(' ');
split_1 = split_1.Trim('(');
split_1 = split_1.TrimEnd(']');
stringArr[pos] = split_1;
pos++;
}
Console.WriteLine("Array Length " + stringArr.Length);
/*
* extracting simalar x coordinates
*/
Console.WriteLine("");
Console.WriteLine("-----------------extracting simalar x coordinates----------------");
Console.WriteLine("");
int indexX = 0;
int loopRunX = 0;
for (int a = 0; a < stringArr.Length - 1; a = indexX)
{
split_2 = stringArr[a];
lengthOfString = split_2.Length;
valX = int.Parse(split_2.Substring(0, split_2.IndexOf(',')));
valZ = int.Parse(split_2.Substring(split_2.IndexOf(' '), (lengthOfString - split_2.IndexOf(' '))));
int countx = 0;
for (int x1 = indexX; x1 < stringArr.Length - 1; x1++)
{
split_3 = stringArr[x1];
lengthOfString = split_3.Length;
valX1 = int.Parse(split_3.Substring(0, split_3.IndexOf(',')));
valZ1 = int.Parse(split_3.Substring(split_3.IndexOf(' '), (lengthOfString - split_3.IndexOf(' '))));
//Check for the simillar x in the text file we provide
if (valX == valX1)
{
countx++;
Console.WriteLine("X is " + valX + " and the coordinates which have simillar x ==> (" + valX1 + ", " + valZ1 + "). Index is " + x1 + " Count is " + countx);
}
else
{
break;
}
}
loopRunX++;
indexX = indexX + countx;
//Console.WriteLine("Next Index to check onwards : " + indexX);
//Console.WriteLine("Looping Count : " + loopRunX);
Console.WriteLine("");
}
Console.ReadLine();
}
}
}
Ich will diese ähnlichen x Werte in separaten Arrays speichern. zB: Wert 27 erscheint 12 Mal und ich möchte diese Werte in einem einzigen Array speichern. Wert 28 erscheint 12 mal, genauso wie oben sollte er alle 28 Werte in einem einzigen Array speichern. Aber ich weiß nicht, wie viele Arrays dafür benötigt werden. Kann ich eine Lösung kennen, um diese ähnlichen Koordinaten dynamisch in einem einzigen Array zu speichern?
Wenn Sie sich der Länge nicht sicher sind, verwenden Sie einfach eine Liste, Sie können diese immer wieder in ein Array konvertieren, sobald Sie fertig sind. – nik0lias