4

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

例如:

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

2 回答 2

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);

请注意,“单例”通常指的是单例模式;正如您从评论中看到的那样,使用该术语来指代包含一个元素的集合是令人困惑的。

于 2012-12-21T23:15:18.323 回答
2

您可以创建以下扩展名,然后在要创建自身列表的任何对象上调用它。

唯一的缺点是它会污染扩展空间......所以如果你发现自己经常使用它,我只会这样做。

public static partial class Extensions
{
    public static List<T> ToListOfSelf<T>(this T item)
    {
        return new List<T>() { item };
    }
}

例如 myObject.ToListOfSelf();

于 2018-01-24T04:42:22.440 回答