0

我想要做的是使用 linq 将字符串转换为字符串列表。我尝试以下代码行:

value = "one,two,three,four";

List<string> arr = value.Split(',').Select(s => s.ToList());

但我收到错误:

错误 1 ​​无法将类型“System.Collections.Generic.IEnumerable>”隐式转换为“System.Collections.Generic.List”。存在显式转换(您是否缺少演员表?)

如果有人可以提供一些帮助,那就太棒了。

4

8 回答 8

10

你好,你可以试试

 value.Split(',').ToList();
于 2012-07-31T13:36:58.360 回答
3

ToList在每个单独的数组元素上都有 - 即在每个字符串上。该调用本身是有效的,因为stringimplements IEnumerable<char>,但这意味着您正在创建一个IEnumerable<List<char>>不是您想要的。

我认为您根本不需要Select- 只需使用:

List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:37:10.527 回答
2

列表构造函数之一采用 enumerable

var arr = new List<string>(value.Split(','));

不知道为什么人们坚持对所有东西进行 linq 扩展......

于 2012-07-31T13:37:10.913 回答
1
value = "one,two,three,four";

List<string> arr = value.Split(',').Select(s => s).ToList();

或更简单:

List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:36:40.883 回答
1

即使您不需要选择,但如果您想使用它,那么它应该是:

  List<string> arr = value.Split(',').Select(s => s).ToList();

或者你可以简单地做:

  List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:37:28.417 回答
0

你不应该需要选择:

value = "one,two,three,four";

List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:37:53.220 回答
0
string value = "one,two,three,four";
List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:38:03.347 回答
0

您不需要在这里使用 LINQ,而是可以简单地执行以下操作:

string value = "one,two,three,four";
List<string> arr = value.Split(',').ToList();
于 2012-07-31T13:42:13.643 回答