I have a data set in string format. These are some coordinates which I got through image processing. I have attached the code which extracts those(coordinates) and stored in a single array.From those coordinates, I found x values which are similar.
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();
}
}
}
I want to store those similar x values in separate arrays. eg : value 27 appears 12 times and i want to store those values into one single array.value 28 appears 12 times,same as above it should store all 28 values in a single array. But i don't know how many arrays will be needed for this.May i know a solution to store these similar coordinates together in a single array dynamically?
