foreach循环中的变量在循环外不存在

时间:2019-04-07 19:38:50

标签: c#

对不起,这很基本,但是对于我来说,我一直无法解决:

我有这个:

public static IHtmlString HrefLangLinks(this PageData currentPage)
{
    var availablePageLanguages = currentPage.ExistingLanguages.Select(culture => culture.Name).ToArray();

    foreach (string listitem in availablePageLanguages)
    {
        var Output = string.Join(",", listitem);
    } 

    // Dictionary<String, String>
    return new HtmlString(Output.ToString());
}

我想获得在返回值中输出的foreach循环的结果。但是Visual Studio通知我当前上下文中不存在“输出”(返回值中的实例)。

我认为我可以通过在我的foreach循环之外添加var Output ="";来解决此问题,但这没用。

1 个答案:

答案 0 :(得分:2)

在进入foreach循环之前定义输出,然后为其分配一个值:

var Output = "";

foreach (string listitem in availablePageLanguages)
{
    Output = string.Join(",", listitem);
} 

除此之外,我想知道在这种情况下是否真的需要for循环,因为在availablePageLanguages是字符串数组(string [])的情况下,您也应该能够立即执行此操作:

var Output = String.Join(" ", availablePageLanguages));