【问题标题】:find and get + set item value to another Iqueryable list of same type查找并获取 + 将项目值设置为另一个相同类型的 Iqueryable 列表
【发布时间】:2014-10-20 21:46:32
【问题描述】:

我有两个列表 List1 和 List2 。我需要通过比较 itemID 字段来检查 List1 是否具有 List2 的值。如果 List1 中存在,则将相应的 itemQty 值复制到 List2 中的 itemQty List2 中的 itemQty 始终为空白。这两个都是非常重(大数据)的 Iqueryable 列表。

如何做到这一点? 这里做错了什么?

var value = currentOrderlist.SingleOrDefault(x => x.item == curOrder.item).Qty;
if (String.IsNullOrEmpty(value.ToString()))
 {
   gridinfo.Qty = value;
 }

总是报错:Object reference not set to an instance of an object

【问题讨论】:

  • 如果 id 出现在两个 IList 中,您是否要将两个 IList 合并为一个包含两个 IList(公共和孤立)的所有键的新 IList,优先考虑第二个的值?
  • @Mark "对象引用未设置为对象的实例"。
  • 我假设 value 有时为 null,然后 value.ToString() 将抛出该异常。
  • @Mark 如何处理这种情况〜有时值可能为空..如何让它工作?
  • 顺便问一下Qty是什么类型的?

标签: c# list iqueryable


【解决方案1】:

请看:What is a NullReferenceException and how do I fix it?

在您尝试对值执行某些操作之前,添加检查值是否不为空:

var value = currentOrderlist.SingleOrDefault(x => x.item == curOrder.item);
if(value != null)
{
    if (String.IsNullOrEmpty(value.Qty.ToString()))
    {
       gridinfo.Qty = value;
    }
}

【讨论】:

  • 不!给出相同的错误:“对象引用未设置为对象的实例。”内部异常:null
  • 查看我的编辑,那是因为您试图访问 Qty 时从 SingleOrDefault 返回空值
  • 是的,我没有处理那些空值!!
猜你喜欢
  • 2016-03-15
  • 2013-09-20
  • 2021-08-16
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多