Exemple de tableau.map() en C#?
Examiner les communes suivantes JavaScript construire
var ages = people.map(person => person.age);
Donner le résultat souhaité, qui est un tableau des âges.
Quel est l'équivalent de ce dans C#? Veuillez inclure un exemple simple. La documentation indique select
ou possible selectAll
mais je ne peux pas trouver un exemple en ligne ou toute autre SORTE de question qui peuvent être collées dans et fonctionne.
Si possible, donner un exemple qui tourne le tableau suivant {1,2,3,4}
en {'1a','2a','3a','4a'}
. Pour chaque élément, ajouter "un" à la fin, en la tournant d'un Entier en Chaîne de caractères.
(new[]{1,2,3,4}).Select(v => String.Format("{0}a", v))
- Vous avez manqué la
.ToArray()
sur la fin.
Vous devez vous connecter pour publier un commentaire.
Cela s'appelle de la projection qui est appelé
Select
dans LINQ. Qui n'a pas de retour d'un nouveau tableau (comme JavaScript.map
), mais unIEnumerable<T>
. Vous pouvez convertir un tableau avec.ToArray
.Select
fonctionne avec tous lesIEnumerable<T>
qui matrices de mettre en œuvre. Vous avez juste besoin .NET 3.5 et unusing System.Linq;
déclaration.Pour votre 2ème exemple utiliser quelque chose comme cela. Avis il n'y a pas de tableaux à utiliser uniquement des séquences.
var items = Enumerable.Range(1, 4).Select(num => string.Format($"{num}a"));
Seulement pour info, si
people
est unList<Person>
, leConvertAll
méthode est assez similaire à JS demap
, e.g:Mais si vous avez un Tableau et que vous voulez utiliser tout
List<T>
méthodes, vous pouvez facilement atteindre que par la conversion de votre variable dans une Liste de Tableau, l'e.g:Et enfin, si vous avez vraiment besoin d'un Tableau, vous pouvez convertir en arrière, l'e.g:
Mais ce dernier exemple n'est pas aussi bonne que les autres réponses, et vous devez l'utiliser
Select
si vous travaillez uniquement avec des Tableaux. Mais si vous le pouvez, je vous suggère de passer àList<T>
, c'est beaucoup mieux!L'extension LINQ méthodes sur les collections de vous donner un hôte de vraiment à portée de main les services publics.
Select
est l'un d'entre eux:Cela devrait sortie:
Cela peut en toute sécurité être condensée en une 1-liner:
Un exemple de travail:
https://ideone.com/mxxvfy
Liées docs:
Énumérable.Sélectionnez
De base d'une Requête LINQ de l'exploitation (C#)
Linq
.Select
est lemap
équivalent et.Aggregate
est lefold
équivalent.Vous pouvez utiliser les mots-clés
from
,select
,in
etwhile
;Ou pour votre exemple:
Donc, essentiellement, la syntaxe sera: