将值分配到列表< object>在模型类中 [英] Assinging values into a list<object> in a model class

查看:79
本文介绍了将值分配到列表< object>在模型类中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public class Parameter
{
  public int Id {get;set;}
  public string name {get;set;}
  public List<Phonenumber> Phonenumbers{get;set}
}

public class Phonenumber
{
  public string number1 {get;set;}
  public string number2 {get;set;}
  public string number3 {get;set;}
}







public ActionResult SmeDirPage(Phonenumber number)
   {
      Parameter para = new Parameter ();

      // How do i assign value to para.Phonenumbers.number1
   }





我尝试过:



请问如何将值传递到此列表



What I have tried:

Please how can i pass values to this list

public ActionResult SmeDirPage(Phonenumber number)
   {
      Parameter para = new Parameter ();
      foreach(var item in para.Phonenumbers) // Error **Object reference not set to an instance of an object**
      {
        item.number1 = number.number1;
        item.number2 = number.number2;
        item.number3 = number.number3;
      }
   }

推荐答案

你已经将Phonenumbers定义为List但是没有你是在创建列表所以para.Phonenumbers总是为null。您可以在构造函数中创建一个新List。



You've define Phonenumbers to be a List but at no point are you creating the list so para.Phonenumbers is always going to be null. You can create a new List in the constructor.

public class Parameter
{
  public int Id {get;set;}
  public string name {get;set;}
  public List<Phonenumber> Phonenumbers{get;set}
  
  public Parameter()
  {
     this.Phonenumbers = new List<Phonenumber>();
  }
}


你的代码没有意义,因为你的 Phonenumbers 类型列表< Phonenumber> 的属性将始终为空值,因此它永远不会进入 foreach-loop 即使您初始化列表



Your code doesn't make sense because your Phonenumbers property of type List<Phonenumber> will always have an empty value, thus it will never go inside your foreach-loop even if you initialize your List.

Quote:

请问如何将值传递给此列表

Please how can i pass values to this list





您不需要循环为您的值分配值列表因为它已经预期某种类型 Phonenumber 。你需要做的就是这样:





You don't need a loop to assign values to your List because it's already expecting a type of Phonenumber. What you need to do is simply just like this:

var phoneNumbers = new List<Phonenumber>();
phoneNumbers.Add(numbers);





然后您可以将 phoneNumbers 值分配给您的参数这样的对象:





You can then assign the phoneNumbers value to your Parameter object like this:

Parameter para = new Parameter();
para.Id = 1;
para.name = "Vynn Markus";
para.Phonenumbers = phoneNumbers;





完全放入它们,你的整个 ActionResult 方法现在看起来像这样:





To put them altogether, your whole ActionResult method would now look something like this:

public ActionResult SmeDirPage(Phonenumber numbers)
{
    var phoneNumbers = new List<Phonenumber>();
	phoneNumbers.Add(numbers);
		
	Parameter para = new Parameter();
	para.Id = 1;
	para.name = "Vynn Markus";
	para.Phonenumbers = phoneNumbers;
}


这篇关于将值分配到列表&lt; object&gt;在模型类中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆