J'ai une entité appelée produit et j'ai une liste de tous les produits: p> Je veux obtenir un tableau des chaînes de cette liste de produits Cette matrice contiendra l'ID de produit + Nom du produit, alors lorsque j'essaie de la jeter à l'aide du code suivant: P> string ProductToString(Product p)
{
return p.Name;
}
4 Réponses :
string[] s = products.Select(p => p.Id + ' ' + p.Name).ToArray();
Eh bien, étant donné cette méthode que vous pouvez utiliser 1 sup>: Cependant, il serait plus idiomatique de le faire sans em> méthode distincte, généralement à l'aide d'une expression Lambda: p> Je n'utiliserais qu'une méthode distincte si elle allait être appelée à partir de divers endroits (assurer la cohérence) ou un beaucoup de travail. p> Edit: Je viens de remarquer que votre Description em> (désignant ID + nom) ne correspond pas réellement à la méthode code> ProductTostring code> 'vu donné (qui donne juste le nom). Pour le nom ID +, j'utiliserais: p> ou p> ou vous pouvez simplement changer votre Alternativement, vous pouvez remplacer 1 sup> Il est possible que vous n'ayez pas besoin de Pour spécifier l'argument de type explicitement - que: p> fonctionnera bien - les règles de conversation de groupe et de groupe de méthode me confondent toujours et le comportement du compilateur a légèrement changé au fil du temps. Un test rapide semble maintenant que fait em> fonctionne, mais il pourrait y avoir des subtilités dans légèrement em> différentes situations. P> p> ProduitsTostring code> méthode, bien sûr. P>
tostring () code> dans
produit code>, si cela est habituellement < / em> Comment vous voulez convertir un produit
code> à un
chaîne code>. Vous pouvez ensuite utiliser une conversion de groupe de méthodes ou une expression lambda pour appeler
tostring code>. P>
IMHO Vous n'êtes pas obligé d'écrire le
@ Carstenkönig: C'est May i> dépend de quelle version du compilateur que vous utilisez. Il y avait des changements subtils dans le compilateur V4, IIRC. J'ajoutais une note à ce sujet autour du temps que vous commenciez :)
Utilisez
string[] s = (from p in products select p.Id.ToString() + " " + p.Name.ToString()).ToArray();
Ceci a fonctionné pour moi: où mi_customer code> doit être votre objet, dans mon cas est une table. p> p>