【问题标题】:I am getting this error "An unhandled exception of type 'System.ArgumentNullException' occurred in System.Core.dll" [duplicate]我收到此错误“System.Core.dll 中发生'System.ArgumentNullException' 类型的未处理异常” [重复]
【发布时间】:2014-07-31 08:14:40
【问题描述】:

我需要将值传递给 zeiresponse.TEnrlbp ,这是一种“ZetEnrlbp”类型。任何帮助将不胜感激。谢谢

       ZEIsuCirroCreateBpCaResponse zeiresponse = new ZEIsuCirroCreateBpCaResponse();

       ZetEnrlbp brp = new ZetEnrlbp();


       brp.BuLangu = "English";
       brp.NameOrg1 = "Random";
       brp.NameOrg2 = "Random2";

      //Throws an exception here.
       zeiresponse.TEnrlbp.Select(c => c.NameOrg2 = "Name");

       zeiresponse.TEnrlbp.Select(s => s.NameOrg2 = "");

【问题讨论】:

  • 你想达到什么目的?你确定你的select 中不应该是== 吗?
  • 我怀疑问题只是 zeiresponse.TEnrlbp 为空...(完全不清楚您希望您的 Select 调用实际做什么...)
  • 我认为你应该使用 Where to 而不是 Select: zeiresponse.TEnrlbp.Where(c => c.NameOrg2 == "Name");
  • zeiresponse 对象必须被传递给另一个函数,但在传递它之前,它的一个属性 TEnrlbp 是“ZetEnrlp”类型必须填充一些值。由于这个错误,我无法这样做。
  • 我正在尝试分配一个值而不是对其进行过滤。所以我想我可以通过 Select 来实现它吗?

标签: c# linq class properties


【解决方案1】:

这是因为“c”为空,这就是“c.NameOrg2”抛出异常的原因。修改如下:

zeiresponse.TEnrlbp.Where(c => с != null).Select(c => c.NameOrg2 = "Name");

或这样的事件:

zeiresponse.TEnrlbp.Select((c) => 
   {
        if (c == null) с = new ....; //typeof "с" constructor
        c.NameOrg2 = "Name";
    });

【讨论】:

    【解决方案2】:

    将空引用传递给不接受它作为有效参数的方法/对象时引发的异常。

    顺便说一句,你的问题不清楚。请再次检查您的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多