c# String splitten und Vorhandensein bestimmten Teilstring prüfen/lesen

  • Hiho,


    ich habe mir eine Textdatei in eine List<String> eingelesen. Eine Zeile der Textdatei sieht so aus:


    diese habe ich per .Split('|') in ein String-Array "gepackt" und hole mir bestimmte Werte aus einer festen Arrayposition:


    Problem hierbei ist, dass die Werte am liebsten durch die "Feldnamen" (00x*) - die aber nicht alle da sein müssen- ausgelesen werden sollen
    Mit ".Contains" könnte ich auf Vorhandensein testen und mir dann das Splitten der Zeile sparen, nur wie teste ich z.B. auf "031*" und lese dann nur den Wert bis zum nxt. Separator "|"??



    EDIT: habs jetzt so aber geht bestimmt eleganter??:



  • so vielleicht?

    Code
    Regex regex = new Regex(@"([0-9]{3})\*(\w+)");
    Match match = regex.Match("001*Ja|002*ungerade|005*aussen|022*21.02.14|023*09:17:53|024*065|025*50|030*0|031*33301050|032*D|033*RKW|036*u|037*103203|038*1D|043*J");
    while (match.Success)
    {
    Console.WriteLine("Nummernwert: " + match.Groups[1].Value + " Wert :" + match.Groups[2].Value);
    match = match.NextMatch();
    }


    sollte ausgabe so aussehen:





    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---