我在转换一段代码以使用.NET3.5时遇到了问题。
static Dictionary<string, object> dictionary = new Dictionary<string, object>
{
{"key","value"},
{"key2","value2"},
};
public static string Process(String _string)
{
var levels = new Dictionary<string, object>
{
{ "", "" },
{ "-", "Light" },
{ "+", "Heavy" }
};
var search = string.Join("and ", from l in levels.Keys
from w in dictionary.Keys
join m in _string.Split() on string.Concat(l, w) equals m
select string.Concat(levels[l], dictionary[w]));
return search;
}
我尝试编译时遇到两个错误......
参数2:无法转换 'System.Collections.Generic.IEnumerable'到'string []'
和
'string.Join(string,string [])'的最佳重载方法匹配 有一些无效的论点
我考虑过添加.ToArray(),但我不知道在哪里。
答案 0 :(得分:4)
像这样使用ToArray
:
var search = string.Join("and ", (from l in levels.Keys
from w in dictionary.Keys
join m in _string.Split() on string.Concat(l, w) equals m
select string.Concat(levels[l], dictionary[w])).ToArray());
答案 1 :(得分:2)
用括号括起你的LINQ查询(从...中选择)并在其上调用.ToArray()。