首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何初始化IList<IList<string>>?

如何初始化IList<IList<string>>?
EN

Stack Overflow用户
提问于 2012-02-06 18:08:30
回答 4查看 18.2K关注 0票数 5

试用过:

代码语言:javascript
复制
IList<IList<string>> matrix = new List<new List<string>()>();

但是我不能,我怎么能做到呢?我需要一个字符串矩阵。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-06 18:11:44

您需要:

代码语言:javascript
复制
IList<IList<string>> matrix = new List<IList<string>>();

但是,您可以总是为每个元素添加一个List<string>

这样做行不通的原因是:

代码语言:javascript
复制
// Invalid
IList<IList<string>> matrix = new List<List<string>>();

是这样写起来是合理的:

代码语言:javascript
复制
// string[] implements IList<string>
matrix.Add(new string[10]);

..。但这将违背列表实际上是一个List<List<string>>的事实-它必须包含List<string>值,而不是任何IList<string>……而我在顶部的声明只创建了一个List<IList<string>>,因此您可以在不破坏类型安全性的情况下向其添加字符串数组。

当然,您也可以改为在声明中使用具体类型:

代码语言:javascript
复制
IList<List<string>> matrix = new List<List<string>>();

或者甚至是:

代码语言:javascript
复制
List<List<string>> matrix = new List<List<string>>();
票数 16
EN

Stack Overflow用户

发布于 2012-02-06 18:10:59

尝尝这个

代码语言:javascript
复制
    IList<IList<string>> matrix = new List<IList<string>>();
票数 3
EN

Stack Overflow用户

发布于 2012-02-06 18:12:33

这将会起作用--你不能像你尝试的那样初始化泛型类型参数:

代码语言:javascript
复制
IList<IList<string>> matrix = new List<IList<string>>();

不过,内部IList<string>将是null。要初始化它,您可以执行以下操作:

代码语言:javascript
复制
matrix.Add(new List<string>());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9158483

复制
相关文章

相似问题

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