Linq 根据第二列选择列表值
我有两列列表值Linq 根据第二列选择列表值,linq,Linq,我有两列列表值 ptext | stylename -----------|------------ aaa | styleone ccc | styleone ddd | styleone fff | styletwo ggg | styletwo xyx | styleone dkk | styleone 我想要这样的清单 ptext
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查询按
stylename
属性对项目进行分组,然后将每个组的ptext
值投影到与coma连接的字符串中
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))
}
当然,您可以创建列表项类型的对象,而不是匿名对象。第一个问题可以,但下次请提供您尝试过的代码,它们是
aaa、ccc、ddd
和xyx,dkk
投影后不在同一个集合中?我只希望它应该按stylename分组并返回逗号分隔的行,就像我在所需列表中显示的那样,因为aaa、ccc、ddd是不同的行和xyx,dkk应该在不同的行中此要求它不打断第一个组,然后是第二个组和第三个组它只是在我想要的地方用逗号分隔连接我应该在3个组中此示例