我要做的是使用linq将字符串转换为字符串列表。我尝试以下代码行:
value = "one,two,three,four";
List<string> arr = value.Split(',').Select(s => s.ToList());
但我收到错误:
错误1无法隐式转换类型'System.Collections.Generic.IEnumerable&gt;'到'System.Collections.Generic.List'。存在显式转换(您是否缺少演员?)
如果有人能提供一些很棒的帮助。
答案 0 :(得分:10)
你好,你可以试试
value.Split(',').ToList();
答案 1 :(得分:3)
你在每个单独的数组元素上都有ToList
- 即在每个字符串上。该调用本身有效,因为string
实现了IEnumerable<char>
,但这意味着您创建的IEnumerable<List<char>>
不是您想要的。
我认为你根本不需要Select
- 只需使用:
List<string> arr = value.Split(',').ToList();
答案 2 :(得分:2)
列表构造函数之一takes an enumerable:
var arr = new List<string>(value.Split(','));
不确定为什么人们坚持使用所有内容的linq扩展 ...
答案 3 :(得分:1)
value = "one,two,three,four";
List<string> arr = value.Split(',').Select(s => s).ToList();
或更简单:
List<string> arr = value.Split(',').ToList();
答案 4 :(得分:1)
即使你不需要选择,但如果你想使用它,那么它应该是:
List<string> arr = value.Split(',').Select(s => s).ToList();
或者您可以这样做:
List<string> arr = value.Split(',').ToList();
答案 5 :(得分:0)
您不需要选择:
value = "one,two,three,four";
List<string> arr = value.Split(',').ToList();
答案 6 :(得分:0)
string value = "one,two,three,four";
List<string> arr = value.Split(',').ToList();
答案 7 :(得分:0)
您不需要在这里使用LINQ,而只需执行此操作:
string value = "one,two,three,four";
List<string> arr = value.Split(',').ToList();