C# 使用LINQ根据ID将2个不同类型的列表合并为1
您好,我正在尝试将这两个列表合并为一个C# 使用LINQ根据ID将2个不同类型的列表合并为1,c#,json,list,asp.net-core,C#,Json,List,Asp.net Core,您好,我正在尝试将这两个列表合并为一个 List<Entry> testing = new List<Entry>(); List<Tool> yes = new List<Tool>(); foreach (var p in _context.Tool .Join(_context.Entry, o => o.ToolId, od => od.FktoolId, (o
List<Entry> testing = new List<Entry>();
List<Tool> yes = new List<Tool>();
foreach (var p in _context.Tool
.Join(_context.Entry,
o => o.ToolId,
od => od.FktoolId,
(o, od) => new { o.Name, od.Measure, od.RunDate, od.User, od.V }))
{
testing.Add(new LogEntries {
Measure = p.Measure,
V = p.V,
RunDate = p.RunDate,
User = p.User});
yes.Add(new Tool {
Name = p.Name });
}
我只从测试列表中获取数据,但我希望根据工具ID将列表“yes”中的名称输入列表“testing”
那么,我可以把这个名字推到列表中,还是有办法合并它们。因为它们是不同的类型,所以我不能相交
所以我现在提取的数据是
[{措施:“1”
五:三,
运行日期:“08/12/19”
用户:“测试用户”}]
我希望它看起来像这样
[{措施:“1”
五:三,
运行日期:“08/12/19”
用户:“测试用户”
名称:“龙”}]
在
Join
语句中,您已经在创建组合对象。为什么不将这些组合对象放在一个列表中并序列化呢
var list = _context.Tool
.Join(_context.Entry,
o => o.ToolId,
od => od.FktoolId,
(o, od) => new { od.Measure, od.V, od.RunDate, od.User, o.Name })
.ToList();
ViewBag.Testing = JsonConvert.SerializeObject(list);
旁白:为什么要序列化这些值?如果您在视图中使用数据,您应该将数据投影到一个具体的类中。@KratosMafia-仅供参考,您不必在联接操作中创建匿名类型,您也可以创建
日志条目
类-这样您就可以将行(o,od)=>new{od.Measure,…}
更改为(o,od)=>新日志条目(){Measure=od.Measure,…};
var list = _context.Tool
.Join(_context.Entry,
o => o.ToolId,
od => od.FktoolId,
(o, od) => new { od.Measure, od.V, od.RunDate, od.User, o.Name })
.ToList();
ViewBag.Testing = JsonConvert.SerializeObject(list);