Announcement

Collapse
No announcement yet.

Best practice : array von Zahlen als string

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Best practice : array von Zahlen als string

    Vielleicht ein bisschen weired der Titel, aber hier kurz die Erklärung:

    Wir haben unterschiedliche Regale, die sich aufgrund historischer Datenquellen unseres ERP nur durch eine alphanumerische Kennung eindeutig identifizieren lassen.
    Dazu haben wir einen grundsätzlichen Präfix - hier nur mal beispielhaft - Regal gefolgt von einer zweistelligen Zahl, bspw. Regal01 bis Regal69.

    Ich benötige für eine Filterung nun ein Array aus Elementen vom Datentyp string, die aber die numerischen Regalnummern enthalten.
    Der Hintergrund ist der, dass ich per Linq die betroffenen Datensätze ziehe:
    Code:
    var affected = Racks.Where(r => areas.Contains(r.Name.Substring(5,2)));
    Das funktioniert natürlich nicht, wenn es sich um unterschiedliche Datentypen handelt.
    Da mir eine simple Konvertierung zu int aus dem Substring an der Stelle zu unschön vorkommt, habe ich das Array areas wie folgt erstellt:
    Code:
    string[] areas;
    
    switch (hall)
    {
        case 1:
            areas = Enumerable.Range(1, 49).Select(i => i < 10 ? "0" + i.ToString() : i.ToString()).ToArray();
            break;
        case 2:
            areas = Enumerable.Range(50, 69).Select(i => i.ToString()).ToArray();
            break;
    }
    Das funktioniert auch wunderbar, ich frage mich allerdings nur, ob das sinnvoller umsetzbar ist?

    Danke für Tipps
    PHP rocks!
    Eine Initiative der PHP Community

  • #2
    Hallo,

    mir ist nicht ganz klar worum es geht. Kannst du das eigentiche Vorhaben erläutern?

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Spaß mit Pattern Matching und Range

      Code:
      var affected = Racks.Where(r => Convert.ToInt32(r[^2..]) switch { >= 1 and <= 49 => true, _ => false });

      Ob das sinnvoller ist überlass ich dem Leser. Hat eher was von obfuscating.

      Comment


      • #4
        Sorry für die späte Rückmeldung.

        Danke für die Option, Ralf Jansen, der Ansatz gefällt mir irgendwie
        Ich belasse es allerdings nun erstmal so.
        PHP rocks!
        Eine Initiative der PHP Community

        Comment

        Working...
        X