J'aimerais connaître la manière la plus efficace de créer de nouveaux tableaux à partir du contenu d'autres tableaux.
J'ai plusieurs réseaux de chaînes du type: p> Il serait possible de créer maintenant une nouvelle gamme de chaîne de manière similaire à celle-ci? P> qui contiendrait toutes les cordes incluses dans les autres tableaux. P > p>
5 Réponses :
Vous pouvez concatez deux tableaux.
Dictionary<string, string[]> Asia = new Dictionary<string, string[]>();
string[] ASIA = new []{ Taiwan, Vietnam, Korea, China, Japan}
.SelectMany(s => s) // not entirely sure what these abbreviations are...
.ToArray();
Pour ceux qui ne connaissent pas SelectMany >.
Vous pouvez prendre votre tentative, ce qui génère un tableau de tableaux, puis l'aplatit à l'aide de SelectMany code> dans un tableau de chaînes. public readonly string[] ASIA = new[] { Taiwan, Vietnam, Korea, China, Japan}
.SelectMany(countryCode => countryCode )
.ToArray();
Vous pouvez également utiliser l'agrégat et l'union pour y accomplir si vous ne voulez que des valeurs uniques dans le tableau de chaînes
Ceci est dramatiquement moins efficace que les autres approches indiquées. Vous re-construisez le code> HASHSET interne code> de chaque ensemble pour chaque étape de l'agrégation. S'il est important d'avoir des valeurs uniques, vous pouvez simplement coller un appel code> distinct code> à la fin d'un SelectMany code> et il fera la même chose, soyez plus clair pour le lecteur et exécutera beaucoup mieux. En outre, votre casser ne fait rien de significatif.
Je pense que vous devez regarder un mécanisme de stockage différent. Il est peut-être temps de représenter ces données dans des tables SQL. Il sera plus facile de gérer et de faire un sens plus intuitif. Avez-vous déjà travaillé avec SQL?
J'utilise ces tableaux pour faire des exclusions dans l'analyse des données et je voudrais ajouter à mon outil un bouton de paramètres pour modifier les exclusions ainsi que d'autres choses, vous me recommandez une petite base de données pour stocker le réglage? Ou ce serait mieux un fichier XML pour cela? Merci pour le commentaire.