【问题标题】:How To Add String To List<String>? List<String> is Model In Model如何将字符串添加到列表<String>? List<String> 是模型中的模型
【发布时间】:2017-12-09 13:09:48
【问题描述】:

这是我的模特:

public VoyageReservedViewModel{
               public List<string> preFactorID { get; set; }
                public int Code{ get; set; } }

我想通过 Thsi 代码将字符串添加到列表

 VoyageReservedViewModel Obj = new VoyageReservedViewModel();
      foreach (var item in result)
      {    
          Obj.preFactorID.Add("My String Value");
      }

但我保留了这个错误:

“System.NullReferenceException”类型的异常发生在 Sample.dll 但未在用户代码中处理

【问题讨论】:

  • 我的问题是向列表中添加字符串 这与 [link]stackoverflow.com/questions/4660142/… 无关
  • 您的问题是 NullReferenceException,链接问题中的答案将指导您如何解决该问题。关于 NRE 的所有问题的原因都是相同的:您尝试使用为空的引用。期间
  • 顺便说一句,你也有一些代码,当它执行时你会得到 NRE - 这是一个完美的副本
  • 我可以看到我的错误和 msgError 但我不知道为什么向我显示那个味精,我遇到了将字符串添加到列表的问题

标签: c# string list


【解决方案1】:

您需要实例化 preFactorID,它是 List&lt;string&gt;

的一种类型
   VoyageReservedViewModel Obj = new VoyageReservedViewModel();  
   Obj.preFactorID = new  List<string>(); 
   foreach (var item in result)
   {              
          Obj.preFactorID.Add("My String Value");
   }

【讨论】:

  • 这将在每次迭代中清空他的列表;可能不是他想要的。
  • 它的工作.. Tnks
【解决方案2】:

您实例化了VoyageReservedViewModel,但从未实例化其列表属性preFactorID。如果未初始化,则无法添加到列表中。

【讨论】:

    【解决方案3】:

    显然,preFactorID 属性为空!你需要初始化它,像这样:

     VoyageReservedViewModel Obj = new VoyageReservedViewModel();
     Obj.preFactorID  = new List<string>();
    

    或者像这样使用object initializer

    VoyageReservedViewModel Obj = new VoyageReservedViewModel{
      preFactorID   = new List<string>()
    };
    

    更新我想在这个答案中添加一些内容。如果您只是在一个特定位置插入此列表,如果您仅在此 foreach 循环中添加这些 ID,并且您不想在其他任何地方编辑其值。我建议您使用其他类型,例如IEnumerable&lt;string&gt;,它使用这种通用的可移植类型为您的代码提供了更多的“可移植性”。所以你的代码变成了:

    public VoyageReservedViewModel
    {
       public IEnumerable<string> preFactorID { get; set; }
       public int Code{ get; set; } 
    }
    VoyageReservedViewModel Obj = new VoyageReservedViewModel();
    var list = new List<string>();
    foreach (var item in result)
    {    
        list.Add("My String Value");
    }
    obj.preFactorID = list; // List<T> is an IEnumerable<T>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2016-09-28
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多