array als Typ für List<T>



  • Hi,
    ich möchte ein array als Typ für die Auflistungsklasse List<T> verwenden. Also so:

    using namespace System::Collections::Generic;
    
    ...
    
    array<int> ^Hilfsarray;
    List<Hilfsarray> ^c;
    

    Für Ratschläge wäre ich dankbar



  • Ähm...

    using namespace System::Collections::Generic;
    
    List<array<int> ^> ^c;
    

    Oder warum nicht gleich:

    using namespace System::Collections::Generic;
    
    List<List<int> ^> ^c;
    

    Oder wo ist das Problem?

    MfG



  • das sieht schon mal gut aus...
    aber wie weise ich dem dann etwas zu, muss ich immer ein array definieren und es dann zuweisen, oder kann ich auch etwas in der Art:

    using namespace System::Collections::Generic;
    
    List<array<int> ^> ^c; 
    c->Add({2,2}); //das funktioniert so anscheinend nicht
    

    benutzen.

    Ich brauche so eine Datenstruktur ja eigentlich nur für mein Programm, um vorher unbekannt viele Koordinatenpaare während des Programmablaufes abzuspeichern. Wenn es da noch bessere bzw. einfachere Möglichkeiten gibt, wäre ich dankbar für Vorschläge.



  • Du willst Koordinatenpaare in einer Liste speichern? Dann würde ich dir strengstens von List<array<int> ^> ^ abraten, und für die Koordinaten eine eigene Klasse definieren bzw. eine bereits vorhandene Verwenden. Z.B. mit List<Tuple<int, int> ^> ^ :

    List<Tuple<int, int> ^> ^c = gcnew List<Tuple<int, int> ^>();
    c->Add(gcnew Tuple<int, int>(2, 2));
    

    Oder noch empfehlenswerter:

    value struct Coord
    {
        Coord(int x_, int y_)
        {
            x = x_;
            y = y_;
        }
        property int x;
        property int y;
    };
    
    //...
    List<Coord> ^c = gcnew List<Coord>;
    c->Add(Coord(2, 2));
    

    MfG



  • danke, dass mit value struct war eine gute Idee...

    Wieder was dazugelernt

    mit

    int xx=c[0].x //xx=2
    

    müsste ich auf die Koordinaten zugreifen können.


Anmelden zum Antworten