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

时间:2016-12-29 13:46:04

标签: c# arrays soap

我正在使用第三方网络服务,我想添加值以匹配服务引用类,我不知道如何为以下内容添加值:

参考:

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添加到用户类?提前谢谢你

2 个答案:

答案 0 :(得分:3)

如果您使用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);

答案 1 :(得分:1)

你做错了,首先实例化数组,如果你事先知道它将包含多少项,那么在方括号中指定它,如:

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";

如果您不知道会有多少项,请使用List<T>

@David's suggestion