根据第二列选择列表值

时间:2014-01-03 22:37:58

标签: linq

我有2列列表值

ptext      |   stylename
-----------|------------
aaa        |   styleone
ccc        |   styleone
ddd        |   styleone
fff        |   styletwo
ggg        |   styletwo
xyx        |   styleone
dkk        |   styleone

我想要像这样的列表

ptext           |  stylename
----------------|------------
aaa,ccc,ddd     |  styleone
fff,ggg         |  styletwo
xyx,dkk         |  styleone

请帮助使用一些linq查询

1 个答案:

答案 0 :(得分:1)

stylename属性对项目进行分组,然后将每个组ptext值投影到与昏迷相连的字符串中

list.GroupBy(x => x.stylename)
    .Select(g => new { 
        stylename = g.Key, 
        ptext = String.Join(",", g.Select(x => x.ptext)) 
    });

或使用查询语法:

from x in list
group x by x.stylename into g
select new { // or new YourItemType {
    stylename = g.Key, 
    ptext = String.Join(",", g.Select(x => x.ptext)) 
}

您当然可以创建列表项类型的对象而不是匿名对象。