将对象转换为单元素列表的快速方法?

时间:2012-12-21 23:08:53

标签: c# list .net-2.0

C# 2.0从单个对象创建单元素列表的最快速度是什么?

例如:

MyObject obj = new MyObject();
List<MyObject> list = new List<MyObject> { obj };    // is this possible?

2 个答案:

答案 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();