Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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# 初始化列表<;列表<;T>&燃气轮机;使用默认值_C# - Fatal编程技术网

C# 初始化列表<;列表<;T>&燃气轮机;使用默认值

C# 初始化列表<;列表<;T>&燃气轮机;使用默认值,c#,C#,使用默认值(T类型)初始化列表的方法之一是 listfoo=newlist(newint[5]) 这将创建一个包含5个零的列表。对于列表,您将如何执行此操作 我知道我们可以使用for循环或Enumerate.Repeat(但这会创建一个深度副本)来完成,但想知道是否可以像上面那样完成吗?除了创建自己的子类之外,没有其他方法可以完成。除了创建自己的子类,无法执行此操作。您可以使用来初始化具有预定义内联值的列表 object a, b, c, d, e; var foo = new

使用默认值(T类型)初始化
列表
的方法之一是

listfoo=newlist(newint[5])

这将创建一个包含5个零的列表。对于
列表
,您将如何执行此操作


我知道我们可以使用for循环或Enumerate.Repeat(但这会创建一个深度副本)来完成,但想知道是否可以像上面那样完成吗?

除了创建自己的子类之外,没有其他方法可以完成。

除了创建自己的子类,无法执行此操作。

您可以使用来初始化具有预定义内联值的列表

    object a, b, c, d, e;
    var foo = new List<object>()
    {
        a, b, c, d, e
    };
对象a、b、c、d、e;
var foo=新列表()
{
a、 b,c,d,e
};
如果要使用同一对象的多个实例初始化列表,则list类不会给出任何解决方案。您可能应该坚持使用循环

如果您正在寻找聪明的黑客,您可以尝试:

var foo = new List<int>(Enumerable.Range(1, 5).Select(x => 42));
var bar = new List<string>(Enumerable.Range(1, 5).Select(x => "default"));
var far = new List<object>(Enumerable.Range(1, 5).Select(x => new object()));
var foo=新列表(可枚举的范围(1,5)。选择(x=>42));
var bar=新列表(Enumerable.Range(1,5)。选择(x=>“默认”);
var far=新列表(Enumerable.Range(1,5).Select(x=>newobject());
但是不要告诉任何人我说过这句话。

您可以使用一个内联的预定义值来初始化列表

    object a, b, c, d, e;
    var foo = new List<object>()
    {
        a, b, c, d, e
    };
对象a、b、c、d、e;
var foo=新列表()
{
a、 b,c,d,e
};
如果要使用同一对象的多个实例初始化列表,则list类不会给出任何解决方案。您可能应该坚持使用循环

如果您正在寻找聪明的黑客,您可以尝试:

var foo = new List<int>(Enumerable.Range(1, 5).Select(x => 42));
var bar = new List<string>(Enumerable.Range(1, 5).Select(x => "default"));
var far = new List<object>(Enumerable.Range(1, 5).Select(x => new object()));
var foo=新列表(可枚举的范围(1,5)。选择(x=>42));
var bar=新列表(Enumerable.Range(1,5)。选择(x=>“默认”);
var far=新列表(Enumerable.Range(1,5).Select(x=>newobject());

但是不要告诉任何人我说过这句话。

新列表(new List())
新列表(new List(default(t))
var foo=new List(Enumerable.Range(1,5)。选择(I=>new List());
用您想要的任何内部列表替换
5
。您的示例正在调用。这是有效的:
var a=new List(new List[5]);
,但显然您需要迭代到5个元素中并实例化每个列表。与此不同的是其他任何元素,这意味着不,我看不到初始化嵌套列表的默认方法。请注意,
Enumerable中基本上隐藏了for循环。重复
。选择
或等效项,即,您可以在语法上隐藏循环,但它仍然存在。列表的默认值为null。因此,新列表(新列表[5])将使用默认值(null)生成。如果要创建新列表,可以尝试新列表(新列表[]{new T[5]。ToList(),new T[5]。ToList()}
新列表(新列表())
新列表(新列表(默认值(T))
var foo=new List(Enumerable.Range(1,5)。选择(i=>new List());
用所需的内部列表替换
5
。您的示例正在调用。此操作有效:
var a=new List(new List[5]);
,但显然您需要迭代到5个元素中并实例化每个列表。与此不同的是其他任何元素,这意味着不,我看不到初始化嵌套列表的默认方法。请注意,
Enumerable中基本上隐藏了for循环。重复
。选择
或等效项,即,您可以在语法上隐藏循环,但它仍然存在。列表的默认值为null。因此,新列表(新列表[5])将使用默认值(null)生成。如果要创建新列表,可以尝试使用新列表(新列表[]{new T[5]。ToList(),new T[5]。ToList())这并不提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-这是正确的答案,但不是他想要听到的答案。这不提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-这是cor直截了当的回答,只是不是他想听的那个。