2010-11-24 10 views
0

Comment puis-je obtenir une liste de valeurs séparées par des virgules, comme ceci:Linq ou Lambda Expression pour le retour des valeurs séparées par des virgules

CategoryName-ProductName1,ProductName2,etc 

Ce code renvoie les noms de produits qui sont séparés par des virgules, mais au begening du série Je veux que le nom de la catégorie et afficher les noms: produit précédent

var result = from Cats in Categories 
    where Cats.Id == 39 
    select new { 
     Products = Cats.Products, 
     Cats = Cats 
    }. 
    Products. 
    Select(Products => Products.Name). 
    Aggregate((Items, Item) => Items + "," + Item); 
+0

Ne pas apprendre les mots magiques. Revenez en arrière et apprenez les bases. –

Répondre

4

Vous pouvez essayer:

var result = from cat in Categories 
      where cat.Id == 39 
      select cat.Name + "-" + String.Join(",", 
       cat.Products.Select(product => product.Name)); 
1
Categories 
    .Where(c => c.Id == 39) 
    .Select(c => c.Name + "-" + c.Products.Select(p => p.Name).Aggregate((acc,p) => acc + "," + p)) 
2

Essayez:

string result = Categories.Where(y => y.Id == 39). 
       Select(y => y.Name + String.Join(",", y.Products.Select(x => x.Name))); 

Je ne l'ai pas essayé moi-même, mais il devrait fonctionner :)

0

Plusieurs options ici. Ma prise serait de le diviser en deux:

var cat = Categories.Where(cat => cat.Id == 39); 
var result = string.Format("{0}-{1}", 
        cat.Name, 
        cat.Products.Aggregate((list, product) => list + "," + product.Name));