我有一个只读集合属性的类。我想用现有集合中的值初始化该集合。
我知道可以使用集合初始化程序来初始化集合using a collection initializer。我也可以创建对象,然后在集合上使用
是否有一种方法可以在第一次正确初始化List时创建对象(当然不需要添加构造函数)?
我知道可以使用集合初始化程序来初始化集合using a collection initializer。我也可以创建对象,然后在集合上使用
AddRange
添加现有集合的项。但这将创建一个带有空列表的对象,并在之后添加现有项。是否有一种方法可以在第一次正确初始化List时创建对象(当然不需要添加构造函数)?
using System.Collections.Generic;
namespace EmptyConsoleApp
{
internal class Program
{
public static void Main(string[] args)
{
// Compiles, but is not what I need
var firstHolder = new Holder()
{
TheList = {"A", "B"}
};
// Compiles, but initializes the list after object creation
var existingList = new List<string>() {"Foo", "Bar"};
var secondHolder = new Holder();
secondHolder.TheList.AddRange(existingList);
// Does not compile
var thirdHolder = new Holder()
{
TheList = {existingList}
};
}
}
internal class Holder
{
public Holder()
{
TheList = new List<string>();
}
public List<string> TheList { get; }
}
}