C# 2.0
从单个对象创建单元素列表最快的方法是什么?
例如:
MyObject obj = new MyObject();
List<MyObject> list = new List<MyObject> { obj }; // is this possible?
您的示例代码
List<MyObject> list = new List<MyObject> { obj };
使用集合初始化程序,这在 C# 2.0 中不可用。您可以使用数组初始值设定项,而不是:
List<MyObject> list = new List<MyObject>(new MyObject[] { obj });
或者,只需制作列表并添加对象:
List<MyObject> list = new List<MyObject>(1);
list.Add(obj);
请注意,“单例”通常指的是单例模式;正如您从评论中看到的那样,使用该术语来指代包含一个元素的集合是令人困惑的。
您可以创建以下扩展名,然后在要创建自身列表的任何对象上调用它。
唯一的缺点是它会污染扩展空间......所以如果你发现自己经常使用它,我只会这样做。
public static partial class Extensions
{
public static List<T> ToListOfSelf<T>(this T item)
{
return new List<T>() { item };
}
}
例如 myObject.ToListOfSelf();