1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Array in C#

Discussion in 'Programmieren' started by Saiks, Jul 9, 2009.

Thread Status:
Not open for further replies.
  1. Saiks

    Saiks Byte

    Hallo Leute,

    ich möchte gern Werte die in einem Array gespeichert sind auslesen. Aber ich hab folgendes Problem:

    Wenn ich nur 2 Werte übergebe, aber eine Code Zeile habe wo der dritte Wert angesprochen wird bricht der Code ab. Wie kann ich prüfen ob etwas im Dritten Wert steht. So wie in etwa hier:

    if (Array[2] !=null)
    {
    string test = "test";
    }

    aber das funktoniert auch nicht!
     
  2. diego2k

    diego2k Kbyte

    int array:

    if (Array[2].toString() !="")
    {
    string test = "test";
    }

    oder is es ein string array ... dann kannst dir das tostring sparen...

    gibst ja ziemlich wenig infos...
     
  3. daboom

    daboom Megabyte

    So wie ich es verstanden habe, geht es generell darum, herauszufinden, wie viele Elemente das Array hat, oder was meinst Du mit "wenn ich nur 2 Werte übergebe"?

    Weiß jetzt nicht wie es in C# ist, aber ich denke es ist ähnlich wie bei Java. Also sprich irgendeine Methode vom Array-Objekt aufrufen bzw. eine Member-Variable abfragen.

    Wenn ichs falsch verstanden hab, haut mich... ;)
     
  4. Saiks

    Saiks Byte

    Es sieht wie folgt aus:

    Ein String wert wird gesplittet und in Arrays geschrieben, Manchmal hat der String 2 Werte manchmal 3.

    Wenn der Wert nur 2 Werte hat, dann bricht der Code bei meiner geposteten Zeile ab, weil halt in Array[2] nichts enthalten ist. Aber ich möchte herrausfinden wann in Array[2] ein Wert drin ist und wann nicht..

    Ich hoffe das war verständlich:confused:
     
  5. Saiks

    Saiks Byte

    Am einfachsten wäre es wohl die Anzahl der Dimensionen des Arrays zuermitteln. Aber leider weiß ich nicht wie das geht... Hat einer eine Idee von euch?
     
  6. daboom

    daboom Megabyte

    Ich glaube immer noch, Du meinst nicht die Dimension, sondern die Größe eines Arrays. Diese bekommst Du über arrayName.Length heraus.

    Das heißt, Du splittest Deinen String in ein Array aus Strings (die Einzelstrings entsprechend) und findest über den Aufruf bzwe. die Abfrage von Length heraus, wie viele Teilstrings das Array nun enthält. Das kann (laut Deiner Aussage) dann entweder 2 oder 3 sein. Nur im Falle, dass 3 enthalten sind, greifts Du halt noch auf das dritte zu.
     
  7. diego2k

    diego2k Kbyte

    wenn du ein array mit unbestimmter länge durchläufst gehst du immer gleich vor ...

    1. würd ich mal ne arraylist verwenden ... wenn du nicht weißt ob da jetzt ein wert oder 1000 kommen ..
    2. außerdem läufst du das array nur bis zum letzten wert durch und net bis zu dem wert was du glaubst das es der letzte ist ....

    ArrayList array = new ArrayList();
    array.Add("asd");
    array.Add(2);
    array.Add("");

    for (int i = 0; i < array.Count; i++) {

    if (array.ToString() == "")
    {
    Console.WriteLine("wert " + i + " enthält keinen wert");
    }
    else {
    Console.WriteLine("wert "+ i+ "="+array);
    }
    }
    Console.ReadLine();
     
  8. Saiks

    Saiks Byte

    Was daboom gemeint hat, ist genau das was ich gemeint habe.. Vielen Dank für eure Hilfe:danke:
     
  9. Hascheff

    Hascheff Moderator

    Ich kann nicht C#, aber unabhängig von der Programmiersprache solltest du eine der fogenden Maßnahmen immer treffen, wenn du mit Arrays zu tun hast:

    - Vor der Benutzung das Array zu initialisieren, also alle Elemente z.B. mit einem Leerstring belegen, so dass keine undefinierten Zustände auftreten können.

    - Beim Belegen des Arrays in die nicht benötigten Zellen Leerstrings eintragen.

    - In einer anderen Variablen die Anzahl der belegten Zellen festhalten.
     
  10. da_Ferdi

    da_Ferdi Halbes Megabyte

    Nein, auf keinen Fall. Auch wenn es bei der geringen Anzahl an Elementen irrelevant ist, das Array ist performanter als die ArrayList. Die ArrayList- Klasse ist dafür gedacht, wenn Objekte verschiedenen Typs in einer Variable gespeichert werden sollen.

    Das kann man auch einfacher per foreach()- Schleife machen :)
     
Thread Status:
Not open for further replies.

Share This Page