2017-02-07 4 views
-1

Das ist die Struktur:Wie manipuliert man die Struktur (Array innerhalb)?

public struct ProfilePoint 
{ 
    public double x; 
    public double z; 
    byte intensity; 
} 

es sich in einer Callback-Funktion verwendet wird (ich das meiste davon gelöscht, so dass es keinen Sinn machen, gibt es eine for-Schleife, dass Zyklus durch alle Punkte (Arrayindex), die waren . auf einer abzutastenden Oberfläche und verarbeiten sie das Ergebnis innerhalb profileBuffer gespeichert ist):

public static void onData(KObject data) 
      { 
       if (points[arrayIndex].x != -32768) 
             { 
              profileBuffer[arrayIndex].x = 34334; 
              profileBuffer[arrayIndex].z = 34343; 
             validPointCount++; 
             } 
             else 
             { 
              profileBuffer[arrayIndex].x = 32768; 
              profileBuffer[arrayIndex].z = 32768; 
             } 
            }    
           } 

ich möchte die Daten innerhalb profileBuffer (beide Arrays verarbeiten, x & z).

Bisher war ich "in der Lage", um eine Funktion zu erstellen, die einen Wert von profileBuffer ohne Fehler von Visual Studio erhalten:

public static int ProcessProfile(double dataProfile) 
{ 
    int test=1; 

    return test; 
} 

Setzen Sie diese Zeile:

ProcessProfile(profileBuffer[1].x); 

In onData() Ergebnis kein Fehler, aber das ist nur ein Wert. Idealerweise hätte ich gerne das ganze Array. Was mich verwirrt ist, dass jeder Wert, der in profileBuffer gespeichert ist, doppelt ist (vergiss die Intensität). Aber im Array gespeichert. Trotzdem kann ich die Daten nicht wie ProcessProfile (profileBuffer.x) importieren; Ich muss einen Index angeben ... Ist es möglich, einen Vektor (Linie) von Daten zu manipulieren? Das wäre ideal für mich.

Sorry für die schlechte Erklärung/lange Post ... Ich bin ziemlich neu.

+0

Sie benötigen nur eine 'foreach' Schleife? Versuchen Sie zu googlen, dass –

+0

'ProfileBuffer' ein Array in Ihrem Fall oder einer Sammlung ist, also müssen Sie es indizieren oder das Element abrufen und dann' .x' darauf aufrufen. 'x' ist keine Eigenschaft oder ein Feld Ihrer Sammlung, so dass Sie' profileBuffer.x' nicht aufrufen könnten. – CodingYoshi

+0

Und ja, Ihre Frage ist nicht klar, was Sie erreichen wollen – CodingYoshi

Antwort

1

Sie benötigen

public static int ProcessProfile(ProfilePoint []points) 
{ 
    var x = points[4].x; 
..... 
} 

und tun

ProcessProfile(profileBuffer); 
Verwandte Themen