linq相同合并

afei_110806 2017-12-11 08:30:18
我现有这样一个list
    var lst = new List<ItemValues> { 
new ItemValues{QId=1,Qvalue="AA"},
new ItemValues{QId=2,Qvalue="BB"},
new ItemValues{QId=2,Qvalue="CC"}
};

和两个对象
public class QList
{
public int QId { get; set; }
public List<ItemValues> values { get; set; }
}
public class ItemValues
{
public int QId { get; set; }
public string Qvalue { get; set; }
}

我想要的Qlist集合结果是这样的"Qlist":
[
{
"QId": "1",
"Values": [
{
"QId": "1",
"Qvalue": "11"
}
]
},
{
"QId": "2",
"Values": [
{
"QId": "2",
"Qvalue": "BB"
},
{
"QId": "2",
"Qvalue": "CC"
}
]
}


...全文
847 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2018-01-24
  • 打赏
  • 举报
回复
void Main()
{
var lst = new List<ItemValues> {
new ItemValues{QId=1,Qvalue="AA"},
new ItemValues{QId=2,Qvalue="BB"},
new ItemValues{QId=2,Qvalue="CC"}
};

var result = lst.GroupBy(l=>l.QId)
.Select(l=>new QList{ QId=l.Key, values=l.ToList() })
.ToList();

//Next step: convert result to Json use JSON.NET
}

public class QList
{
public int QId { get; set; }
public List<ItemValues> values { get; set; }
}
public class ItemValues
{
public int QId { get; set; }
public string Qvalue { get; set; }
}
threenewbee 2017-12-11
  • 打赏
  • 举报
回复
var lst = new List<ItemValues> { new ItemValues{QId=1,Qvalue="AA"}, new ItemValues{QId=2,Qvalue="BB"}, new ItemValues{QId=2,Qvalue="CC"} }; var result = lst.GroupBy(x => x.Qid).Select(x => new { qid = x.Key, values = x.ToList() }).ToList();

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧