我正在尝试使用linq将列表转换为其他格式。
(简化)数据如下:
Code Name
----------
X Red
Y Yellow
Y Red
X Blue
Z Green
我想要的格式是:
“X:红色,蓝色Y:黄色,红色Z:绿色”
我很欣赏有关如何进步的一些提示。
提前致谢,
何
答案 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);