Ho una struttura di dati costante che rappresenta l'altezza relativa di ogni vertebra umana, normalizzata in relazione all'altezza totale della colonna vertebrale. Questo deriva da studi antropometrici, eccDevo usare Enum, static Class, Dictionary o Struct per rappresentare questi "float etichettati" in C#?
ho implementato in Python come una tupla di tuple, ciascuna contenente una (stringa) Nome e (doppio) Valore, in questo modo:
vertebral_heights = (
("C7", 0.0000000),
("T1", 0.0391914),
("T2", 0.0785479),
("T3", 0.1183993),
("T4", 0.1590759),
("T5", 0.2009076),
("T6", 0.2442244),
("T7", 0.2893564),
("T8", 0.3366337),
("T9", 0.3863861),
("T10", 0.4389439),
("T11", 0.4946370),
("T12", 0.5537954),
("L1", 0.6167492),
("L2", 0.6838284),
("L3", 0.7553630),
("L4", 0.8316832),
("L5", 0.9131188),
("S1", 1.0000000))
mio il primo pensiero è stato quello di creare un dizionario, ma che avrebbe avuto bisogno di una classe come contenitore. Poi mi è venuta in mente l'idea di un Enum, ma ho letto "le enumerazioni sono per inti", e ho il doppio. Poi ci sono Class and Struct, ma a questo punto sono completamente confuso, e credo che la mia attuale comprensione delle migliori pratiche di fare questa roba in C# non sia ancora abbastanza.
La mia destinazione d'uso è avere una "mappa" tra il modello dell'applicazione (la parte numerica degli elementi) e il modello utente (la parte relativa agli elementi denominata, relativa al dominio).
Qualche suggerimento?
Se è necessario accedervi in modo dinamico (tramite il nome dell'etichetta), un dizionario è probabilmente il migliore. Se si stanno facendo riferimento solo a nome di variabile, allora un gruppo di costanti in una singola classe probabilmente sta bene (dato che non ce ne sono davvero tanti) – musefan
@musefan 1) sarebbero statici/costanti/readonly; 2) Vorrei conservare un "ordine relativo" tra di loro, in un senso "IEnumerable"; Ottenere i valori tramite 'vertebral_heights.L3', ad esempio, sarebbe bello. – heltonbiker
Per una raccolta così piccola, Elenco <> potrebbe essere più veloce di un dizionario. Benchmark, se le prestazioni sono importanti .. – nawfal