首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C#中创建单项列表的快捷方式

在C#中创建单项列表的快捷方式
EN

Stack Overflow用户
提问于 2009-01-20 19:44:40
回答 12查看 136.3K关注 0票数 154

在C#中,是否有一个内联快捷方式来实例化一个只有一项的列表。

我目前正在做的是:

代码语言:javascript
复制
new List<string>( new string[] { "title" } ))

到处都是这段代码会降低可读性。我曾想过使用这样的实用方法:

代码语言:javascript
复制
public static List<T> SingleItemList<T>( T value )
{
    return (new List<T>( new T[] { value } ));
}

所以我可以这样做:

代码语言:javascript
复制
SingleItemList("title");

有没有更短/更干净的方法?

谢谢。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-01-20 19:51:26

只需使用以下命令:

代码语言:javascript
复制
List<string> list = new List<string>() { "single value" };

您甚至可以省略()大括号:

代码语言:javascript
复制
List<string> list = new List<string> { "single value" };

更新:当然,这也适用于多个条目:

代码语言:javascript
复制
List<string> list = new List<string> { "value1", "value2", ... };
票数 278
EN

Stack Overflow用户

发布于 2009-01-20 20:15:23

代码语言:javascript
复制
var list = new List<string>(1) { "hello" };

与其他人发布的内容非常相似,只是它确保最初只为单个项目分配空间。

当然,如果你知道以后你会添加一大堆东西,这可能不是一个好主意,但仍然值得一提。

票数 48
EN

Stack Overflow用户

发布于 2009-01-20 19:52:47

Michael使用扩展方法的想法带来了更简单的东西:

代码语言:javascript
复制
public static List<T> InList<T>(this T item)
{
    return new List<T> { item };
}

所以你可以这样做:

代码语言:javascript
复制
List<string> foo = "Hello".InList();

我不确定我是不是喜欢,提醒你...

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/462793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档