转换&#39; System.Collections.Generic.IEnumerable <string>&#39; to&#39; string [] </string>

时间:2014-06-23 23:47:14

标签: c#

我在转换一段代码以使用.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(),但我不知道在哪里。

2 个答案:

答案 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()。