繁体   English   中英

如何在C#中为对象数组添加值

[英]How to add value to an array of object in C#

我正在使用第三方Web服务,我想增加价值以匹配服务引用类,而且我不确定如何为以下各项增加价值:

参考:

public partial class UserInfor: object, System.ComponentModel.INotifyPropertyChanged 
{
        private ABC[] listOfABCField;

        public ABC[] ListOfABC 
    {
            get {
                return this.listOfABCField;
            }
            set {
                this.listOfABCField = value;
                this.RaisePropertyChanged("ListOfABC");
            }
        }
}

public partial class ABC : object, System.ComponentModel.INotifyPropertyChanged 
{
    private string ipField;

private string fristNameField;

private string lastNameField;       

}

///////////////////////////////////////////////////// ////在我的service.asmx文件中,尝试按如下所示放置值:在下面的代码中,我在ABC [] abc = new ABC [0]行中遇到异常; 错误代码:(NullReferenceException)

    UserInfor user = new UserInfor();
    ABC[] abc=new ABC[0];
        abc[0].firstName= "petter";
        abc[0].lastName = "lee";

        user.ListOfABC = abc[1];

我也在下面的代码中尝试过我在user.ListOfABC [0] = abc;行中异常。 错误代码:(NullReferenceException)

    UserInfor user = new UserInfor();
    ABC abc=new ABC[0];
        abc.firstName= "petter";
        abc.lastName = "lee";

        user.ListOfABC[0] = abc;

任何想法如何将abc添加到用户类? 先感谢您

如果使用List<>而不是数组,这可能会更容易。 更改属性:

private List<ABC> listOfABCField;

public List<ABC> ListOfABC
{
    // etc.
}

不要忘记在类的构造函数中对其进行初始化,因此它不为null:

public UserInfor()
{
    listOfABCField = new List<ABC>();
}

然后,您可以向其添加一个对象,该对象不需要您尝试使用的任何数组语法:

UserInfor user = new UserInfor();
ABC abc = new ABC();
abc.firstName= "petter";
abc.lastName = "lee";

user.ListOfABC.Add(abc);

您做错了,首先实例化该数组,如果您事先知道它将包含多少个项目,然后在方括号中指定,例如:

ABC[] abc=new ABC[1]; // this array will contain 1 item maximum

现在实例化该项目,然后设置属性值:

    abc[0] = new ABC(); // instantiating first item of array which is at 0th index
    abc[0].firstName= "petter";
    abc[0].lastName = "lee";

如果您不知道要输入多少个项目,请遵循@David的使用List<T> 的建议

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM