我有一个如下所示的对象
public class SampleObject
{
public int MsfId { get; set; }
public List<string> PgId { get; set; }
public List<string> DcId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在以上聚合的PgId值的聚合中MsfId.情况DcId也是如此.
例如:
MsfId: 100
PgId: "abc"
DcId: "123"
MsfId: 100
PgId: "def"
DcId: "456"
MsfId: 100
PgId: "ghi"
DcId: "789"
MsfId: 101
PgId: "abc"
DcId: "123"
Run Code Online (Sandbox Code Playgroud)
如何编写LINQ查询来聚合它并创建一个SampleObjects列表,如下所示?
MsfId: 100
PgId: "abc", "def", "ghi"
DcId: "123", "456", "789"
MsfId: 101
PgId: "abc"
DcId: "123"
Run Code Online (Sandbox Code Playgroud)
尝试这样的聚合:
var result = col.GroupBy(x => x.MsfId)
.Select(x => new SampleObject {
MsfId = x.Key,
PgCodes = x.Select(t=>t.PgId).ToList(),
DcCodes = x.Select(t=>t.DcId).ToList()
});
Run Code Online (Sandbox Code Playgroud)