Korelacja listy z 1 z listą 2 po 2 cechach

0

Cześć!

Jestem w trakcie tworzenia aplikacji (tej samej co ostatnio) i mam problem.
Mam 2 listy jedna o strukturze:
NrPkt X Y Cecha
(przykład)
D.040307_2.0009.1683 5896735.66 6495139.60 3
i drugą o strukturze
X Y
5896735.66 6495139.60.

Problem polega na tym, że ta krótsza lista ma kolejność która mnie interesuje, a muszę to skorelować z cechą z listy 1.
Napisałem pętle:

           for (int i = 0; i < wspPunktówLinii.Count; i = i + 2)
            {
                for (int j = 0; j < tabelaPktGraniczne.Length; j++)
                {
                    if (tabelaPktGraniczne[j].Contains(Convert.ToString(wspPunktówLinii[i])))
                    {
                        jakiToNrPunktu.Add(tabelaPktGraniczne[j - 2]);

                    }

                }
            }
      
            for (int i = 1; i < wspPunktówLinii.Count; i = i + 2)

            {
                for (int j = 0; j < tabelaPktGraniczne.Length; j++)
                {
                    if (tabelaPktGraniczne[j].Contains(Convert.ToString(wspPunktówLinii[i])))
                    {
                        jakiToNrPunktPoX.Add(tabelaPktGraniczne[j - 1]);
                        // richTextBox1.AppendText(jakiToNrPunktPoX + "\r");
                    }

                }
            }
            List<string> ostatecznaKolejnoscPunktow = new List<string>();
            for (int i = 0; i < jakiToNrPunktu.Count; i++)
            {

                if (jakiToNrPunktu[i] == jakiToNrPunktPoX[i])
                {
                    ostatecznaKolejnoscPunktow.Add(jakiToNrPunktPoX[i]);
                }

            }

Pentle działały dopóki nie powtarzały się współrzędne X i Y różnych punktów, teraz mam zagwostkę.
Jest na to jakiś prostszy sposób czy muszę lepszą pentlę wymyślić?

1

Przeczytaj (tylko po angielsku :-) ) https://docs.microsoft.com/pl-pl/dotnet/csharp/linq/perform-inner-joins
Drugi z przykładów jest dokładnie tym, czego, jak sądzę, szukasz. Ale zastanów się, czy nie przerzucić tego zadania na serwer SQL, bo chyba z niego pobierasz te dane?

0

@Sadam2: Generalnie tworzę polinie w CADzie między punktami z Listy 2, i ta polinia musi mieć szerokość początkową jako cechę punktu 1, i szerokość końcową jako cechę punktu 2. Dlatego tworzę z tego listy, jak będę miał listę z kolejnością punktów to będę mógł sobie przelecieć pentelką i wszystkie się ładnie narysują ;)
Dane mam częściowo z dxf'a (lista 2 z współrzędnymi X Y) a reszta, tj. nr punktu i X Y i cechę, od inwestora. Cała appka polega na tym żeby znaleźć punkty na linii z DXFa i przypisać im własnie te punkty z dłużeszej list żeby wiedzieć jakiej szerokości polinię narysować.

Edit: I dzięki już się przyglądam ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1