Array Setzen ??????

  • Xamarin.Android

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von tarkelasgang.

    Array Setzen ??????

    Hallo,
    ich hab grad ein problem das ich nicht verstehe, ich hab mir ein Array mit: String[,] search_result = new string[29, 1]; gemacht.
    So, wenn ich das array jetzt setzt mit search_result[0, 0] = "BlaBla"; dann passt alles
    Aber wenn ich search_result[i, 0] = "BlaBla"; wobei i = 0 //i hab ich mit Breakpoint nochmal geprüft
    dann macht er einfach nix, er unterschtreicht mir die zeile Grün (ich mein wieso grüünn???) und das programm hängt sich auf

    noch mal so am rand ich benutzte xamarin (nicht in VS sondern die Standalone)

    ganzer code:

    C#-Quellcode

    1. int i = 0;
    2. for (int ii = 0; ii <= 500; ii++) {
    3. int newin = sr.Peek();
    4. string ifLine = sr.ReadLine();
    5. if (ifLine == null) {
    6. } else if (ifLine.Contains(":-:")) {
    7. string Line = ifLine;
    8. search_result[i, 1] = "Gotscha";
    9. search_result[i, 0] = "gg";
    10. i++;
    11. }
    12. } // ich weiß das ich das mit sr.Peek anders machen kann aber das hat mir letztes mal so genervt, deswegen hab ich es jetzt so behindert gemacht, ich werde das noch ändern.
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tarkelasgang“ ()

    Wenn etwas grün unterstrichen wird, dann ist das eine Warnung. Also lesen was die Warnung ist. Müsste auch bei Xamarin ein Fehler-Fenster geben und sonst wird das oftmals auch angezeigt wenn du mit der Mouse darüber gehst.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    System.IndexOutOfRangeException has been thrown
    Array index is out of range.

    aber i = 0
    ?????
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.
    Müsste das Array nicht folgendermaßen initialisiert werden, sodass die "2. Dimension" 2 Elemente besitzt:

    C#-Quellcode

    1. String[,] search_result = new string[29, 2];


    Zum restlichen Code:
    Ich persönlich würde keine solchen leeren Codeblöcke verwenden, sondern mit Hilfe logischer Operatoren arbeiten.

    C#-Quellcode

    1. if (ifLine != null && ifLine.Contains(":-:")) {
    2. }

    Außerdem scheint es mir, als wäre auch nicht sichergestellt, dass i immer kleiner als 29 ist.
    @WhitePage Jou.
    @tarkelasgang Kann es sein, dass Du hier in VB denkst?
    Zwar fangen die Arrays beim Index 0 an, aber die Anzahl der Elemente ist bei VB eins höher, um aus Kompatibilität die alten 1-basierten Programme noch (meist) richtig behandeln zu könnenh.
    String[,] search_result = new string[29, 1]; ist elementmäßig identisch mit String[] search_result = new string[29];, also 29 * 1, in VB wären das 30 * 2.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany ich denkte tatsächlich in vb also muss es für mich heißen
    ​String[,] search_result = new string[30, 2]; dammit ich in der einen dimension 2 und in der anderen 30 hab? und i muss mit 1 starten? dammit die nullstelle ausgelassen wird?
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.

    tarkelasgang schrieb:

    dammit die nullstelle ausgelassen wird?
    Setz einen Haltepunkt drauf und sieh Dir das Array an. Dann weißt Du, welche Indizes Du verwenden musst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Counterbug ich dachte index 0 gibt es bei c# nicht, ich bin verwirrt,

    also kann mir jetzt mal einer sagen was ich schreiben muss dammit ich ein String array mit 2 dimensionen hab einmal 30 und einmal 2 stellen?
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.

    tarkelasgang schrieb:

    was ich schreiben muss

    C#-Quellcode

    1. String[,] search_result = new string[30, 2];
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @WhitePage ACHSO aber denn ich den dann setze mach ich das trotzdem so: search_result[0, 1] = "BLABLA";

    ah habs verstanden, dankeee liebe leute
    Meine Software findet ihr HIER, bin in Android und Windows entwicklung aktiv.

    Falls ihr meine begehrte Movie Box für Android haben wollt, diese findet ihr auch auf meiner Website oder hier direkt download.