错误消息:无法从'System.Collections.Generic.IEnumerable'转换为'string []'

时间:2013-04-18 15:28:46

标签: c# linq generics type-conversion

我有以下C#源:( asp.net版本:3.5)

 //map is from 'string' type
 map = string.Join("", TrackMap.Split('|').Select(x => string.Format("<a href=\"{0}\" class=\"lightview\"><img src=\"{0}\" style=\"margin-right:30px;\" width=\"120\" height=\"80\"/>gh</a>", x)));

问题是我收到此错误消息:

  

参数'2':无法转换   'System.Collections.Generic.IEnumerable'到'string []'

错误信息:

  

'string.Join(string,string [])'的最佳重载方法匹配   有一些无效的论点

我的问题是如何解决它? (也许在web.config文件中添加一些代码?添加'using'-someting?)

2 个答案:

答案 0 :(得分:6)

由于您使用的.NET 3.5尚未支持Join<T>(String, IEnumerable<T>),但支持Join(String, Object[]),因此您只需调用ToArray方法即可转换{{1} } IEnumerable

Array

答案 1 :(得分:2)

带有IEnumerable<String>的重载的

string.Join是.NET 4中的新功能,因此您无法在3.5中使用它。

所以这应该有效:

map = string.Join("", TrackMap.Split('|')
            .Select(x => string.Format("<a href=\"{0}\" class=\"lightview\"><img src=\"{0}\" style=\"margin-right:30px;\" width=\"120\" height=\"80\"/>gh</a>", x)
            .ToArray()));