C# 2.0
从单个对象创建单元素列表的最快速度是什么?
例如:
MyObject obj = new MyObject();
List<MyObject> list = new List<MyObject> { obj }; // is this possible?
答案 0 :(得分:8)
您的示例代码
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);
请注意,“单身人士”通常是指singleton pattern;正如您从评论中看到的那样,使用该术语来引用包含一个元素的集合会让人感到困惑。
答案 1 :(得分:0)
您可以创建以下扩展名,只需在要创建自己列表的任何对象上调用它。
唯一的缺点是它会污染扩展空间......所以我只会在你经常使用它的情况下这样做。
public static partial class Extensions
{
public static List<T> ToListOfSelf<T>(this T item)
{
return new List<T>() { item };
}
}
e.g。 myObject.ToListOfSelf();