2010-11-24 68 views
0

我怎样才能得到逗号分隔值的列表,像这样:的LINQ或Lambda表达式返回逗号分隔值

CategoryName-ProductName1,ProductName2,etc 

此代码返回是逗号分隔的产品名字,但在的的begening系列我想要的类别名称出现,前面的产品名称:

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

不要学习魔法词。回去学习基础知识。 – 2010-11-24 19:32:19

回答

4

你可以试试:

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

尝试:

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

我还没有尝试过自己,但它应该工作:)

0

几个选择这里。我的意思是将它分成两部分:

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