C# 错误消息:无法从“System.Collections.Generic.IEnumerable”转换为“string[]”

C# 错误消息:无法从“System.Collections.Generic.IEnumerable”转换为“string[]”,c#,linq,generics,type-conversion,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

我有以下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.Joinstring,string[]”的最佳重载方法匹配 有一些无效的参数


我的问题是我怎样才能修好它?也许在web.config文件中添加一些代码?添加“使用”-someting

由于您所在的.NET 3.5尚未支持JoinString,IEnumerable,但支持JoinString,Object[],因此,您只需调用ToArray方法即可将IEnumerable转换为数组:

带带IEnumerable的重载在.NET4中是新的,所以不能在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()));
从.NET 4.0字符串开始。Join接受IEnumerable作为第二个参数。
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()));