c# - 左连接的对象结果为空 c#
问题描述
我试图在 Linq 中加入两个不同的列表,如下所示:
var fab = (from a in lstt
join b in lstt2 on new { a.PO, a.Line } equals new { b.PO, b.Line } into newab
from ab in newab.DefaultIfEmpty()
select new BomFabConcentrado
{
PO = a.PO,
Line = a.Line,
Fabric1 = ab.Fabric1
}).ToList();
问题是 ab 的结果为空,我收到以下错误消息:
System.NullReferenceException:“对象引用未设置为对象的实例。” ab 为空。
作为额外信息,lstt 包含 900 个元素,而 lstt 包含 200 个元素。
有谁知道出了什么问题?
谢谢你的帮助。
解决方案
左连接使用以下查询
var fab = (from a in lstt
join b in lstt2 on new { a.PO, a.Line } equals new { b.PO, b.Line } into newab
from ab in newab.DefaultIfEmpty()
select new BomFabConcentrado
{
PO = a.PO,
Line = a.Line,
Fabric1 = (ab == null || ab.Fabric1 == null) ? 0 : ab.Fabric1
//or use
Fabric1 = ab?.Fabric1 ?? 0
}).ToList();
推荐阅读
- angular - 角度,ng-zorro:对象作为标签
- python-3.x - 为什么我的网络返回一个大于输出空间长度的整数
- javascript - 构造函数式银行余额工具
- php - 在 PHP (HTML) 中导航并将值传递到另一个页面
- c++ - C++ 中的别名声明
- swiftui - SwiftUI 的间距问题
- hadoop - Google Cloud 上的 YARN Giraph 应用程序 - 找不到胖罐子
- php - json - 如何从用户输入将出现在 %s 的 json 中获取数据
- python-3.x - 二叉搜索树的节点计数器
- ajax - 对 PartialViewResult 的 Ajax 调用不会将 Div 替换为 PartialView