帮助linq查询

时间:2011-09-17 21:34:09

标签: linq

我正在尝试使用linq将列表转换为其他格式。

(简化)数据如下:

Code Name 
----------
X    Red  
Y    Yellow
Y    Red   
X    Blue  
Z    Green

我想要的格式是:

“X:红色,蓝色Y:黄色,红色Z:绿色”

我很欣赏有关如何进步的一些提示。

提前致谢,

2 个答案:

答案 0 :(得分:1)

这应该有效:

var results = codes.GroupBy( x => x.Code)
                   .Select( g => string.Format("{0}: {1}", g.Key, string.Join(",", g.Select( c => c.Name).Distinct())))
                   .ToList();

样品的输出:

X: Red,Blue
Y: Yellow,Red
Z: Green

答案 1 :(得分:0)

List<Data> list = ...;
var query = list.GroupBy(d => d.Code, d => d.Name)
    .Select(g => g.Key + ": " + String.Join(", ", g));
string result = String.Join(" ", query);