Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中向列表中添加对象数组#_C#_Asp.net - Fatal编程技术网

C# 如何在c中向列表中添加对象数组#

C# 如何在c中向列表中添加对象数组#,c#,asp.net,C#,Asp.net,让我解释一下 我有一个X班 public class X { private List<Y> y; } 如何将y1[0]和y1[1]分配给X的对象 X x1=new X(); x1.y.add(y1[0]); x1.y.add(y1[1]); 它的失败 请帮帮我。你可以用 虽然这只是几个元素,但单独添加它们可能同样有效 由于您的列表是私有的,您可能希望添加一个方法来完成此操作 public void AddRangeToList(List<Y> items) {

让我解释一下 我有一个X班

public class X
{
  private List<Y> y;
}
如何将y1[0]和y1[1]分配给X的对象

X x1=new X();
x1.y.add(y1[0]);
x1.y.add(y1[1]);
它的失败

请帮帮我。

你可以用

虽然这只是几个元素,但单独添加它们可能同样有效

由于您的列表是私有的,您可能希望添加一个方法来完成此操作

public void AddRangeToList(List<Y> items)
{
     y.AddRange(items);
}
x.AddRangeToList(y1);
x.AddRangeToList(y1.GetRange(0,2));
public X()
{
    y = new List<Y>();
}

public Y()
{
     z = new List<Z>();
}
public void AddRangeToList(列表项)
{
y、 添加范围(项目);
}
x、 添加范围列表(y1);
x、 AddRangeToList(y1.GetRange(0,2));

看起来你从来没有初始化过你的数组,我会让构造函数来做这个

public void AddRangeToList(List<Y> items)
{
     y.AddRange(items);
}
x.AddRangeToList(y1);
x.AddRangeToList(y1.GetRange(0,2));
public X()
{
    y = new List<Y>();
}

public Y()
{
     z = new List<Z>();
}
public X()
{
y=新列表();
}
公共Y()
{
z=新列表();
}
您可以使用

虽然这只是几个元素,但单独添加它们可能同样有效

由于您的列表是私有的,您可能希望添加一个方法来完成此操作

public void AddRangeToList(List<Y> items)
{
     y.AddRange(items);
}
x.AddRangeToList(y1);
x.AddRangeToList(y1.GetRange(0,2));
public X()
{
    y = new List<Y>();
}

public Y()
{
     z = new List<Z>();
}
public void AddRangeToList(列表项)
{
y、 添加范围(项目);
}
x、 添加范围列表(y1);
x、 AddRangeToList(y1.GetRange(0,2));

看起来你从来没有初始化过你的数组,我会让构造函数来做这个

public void AddRangeToList(List<Y> items)
{
     y.AddRange(items);
}
x.AddRangeToList(y1);
x.AddRangeToList(y1.GetRange(0,2));
public X()
{
    y = new List<Y>();
}

public Y()
{
     z = new List<Z>();
}
public X()
{
y=新列表();
}
公共Y()
{
z=新列表();
}

您应该将列表属性设置为公共属性,而不是私有属性

可访问性级别(C#参考)

-

我将创建一个构造函数来创建列表的实例

课程:

    public class X
    {
        public X()
        {
            Y = new List<Y>();
        }

        public List<Y> Y { get; private set; }
    }

    public class Y
    {
        public Y()
        {
            Z = new List<Z>();
        }

        public int A { get; set; }
        public List<Z> Z { get; private set; }
    }

    public class Z
    {
        public int V { get; set; }
    }

您应该将您的列表属性设置为公共属性,而不是私有属性

可访问性级别(C#参考)

-

我将创建一个构造函数来创建列表的实例

课程:

    public class X
    {
        public X()
        {
            Y = new List<Y>();
        }

        public List<Y> Y { get; private set; }
    }

    public class Y
    {
        public Y()
        {
            Z = new List<Z>();
        }

        public int A { get; set; }
        public List<Z> Z { get; private set; }
    }

    public class Z
    {
        public int V { get; set; }
    }

如果要访问类的属性,需要将它们公开

X x1=new X();
x1.y = new List<Y>(); // need create instant of y before add items 
x1.y.Add(y1[0]);
x1.y.Add(y1[1]);
xx1=新的X();
x1.y=新列表();//需要在添加项目之前创建即时y
x1.y.Add(y1[0]);
x1.y.Add(y1[1]);
我会改变课程如下

public class X
{
    public List<Y> y { get; set; }
}


public class Y
{
    public int a;
    public List<Z> z { get; set; }
}
公共类X
{
公共列表y{get;set;}
}
公共Y类
{
公共INTA;
公共列表z{get;set;}
}

如果要访问类的属性,需要将其公开

X x1=new X();
x1.y = new List<Y>(); // need create instant of y before add items 
x1.y.Add(y1[0]);
x1.y.Add(y1[1]);
xx1=新的X();
x1.y=新列表();//需要在添加项目之前创建即时y
x1.y.Add(y1[0]);
x1.y.Add(y1[1]);
我会改变课程如下

public class X
{
    public List<Y> y { get; set; }
}


public class Y
{
    public int a;
    public List<Z> z { get; set; }
}
公共类X
{
公共列表y{get;set;}
}
公共Y类
{
公共INTA;
公共列表z{get;set;}
}

try
xx1=newx(){y=newlist()}请定义“其失败”。您是否收到任何对象空引用错误?如果是这样,在
类X
构造函数中,创建一个新列表,如
y=new list()
那么您的
x.Y
实际上是
null
,所以请执行
x1.Y=newlist()失败,因为未初始化Y的类X列表。您将列表定义为字段,而不是属性。尝试
xx1=newx(){y=newlist()}请定义“其失败”。您是否收到任何对象空引用错误?如果是这样,在
类X
构造函数中,创建一个新列表,如
y=new list()
那么您的
x.Y
实际上是
null
,所以请执行
x1.Y=newlist()失败,因为未初始化Y的类X列表。您将列表定义为字段,而不是属性<代码>x1.y=新列表()将初始化@Damith event,尽管我已按照您的建议进行了更新。它会抛出错误“Object reference not set to a instance of a Object”(对象引用未设置为对象的实例);其中y构成了一个y类型的对象数组。您在前面添加了
x1.y=new List()
行了吗?@Damith是的,我添加了。对于您的信息,Y[0]和Y[1]只属于Y类型的对象数组。我不会创建List<>类型的读/写属性,我会使用IEnumerable<>来代替读/写属性。
x1.Y=new List()将初始化@Damith event,尽管我已按照您的建议进行了更新。它会抛出错误“Object reference not set to a instance of a Object”(对象引用未设置为对象的实例);其中y构成了一个y类型的对象数组。您在前面添加了
x1.y=new List()
行了吗?@Damith是的,我添加了。对于您的信息,Y[0]和Y[1]仅属于类型为Y的对象数组。我不会创建类型为List<>的读/写属性,我会使用IEnumerable<>作为读/写属性。如果您指定了错误,我可以判断出哪里出了错。我更新了它,它仍然是相同的代码,告诉我它在哪里不同/出了问题?注意:我不会将我的属性命名为与类相同的名称。如果您指定了错误,我可以判断出哪里出了问题。我更新了它,它仍然是相同的代码,告诉我它在哪里不同/出了问题?注意:我不会将我的属性命名为与类相同的名称。