C# EPiserver:获取当前页面的可用语言列表

C# EPiserver:获取当前页面的可用语言列表,c#,episerver,C#,Episerver,我正在尝试在epserver中获取当前页面的可用语言列表。我目前有以下情况: public static IHtmlString HrefLangLinks(this PageData currentPage) { IContentRepository repo = ServiceLocator.Current.GetInstance<IContentRepository>(); var pageLanguagesBra

我正在尝试在epserver中获取当前页面的可用语言列表。我目前有以下情况:

public static IHtmlString HrefLangLinks(this PageData currentPage)
        {
            IContentRepository repo = ServiceLocator.Current.GetInstance<IContentRepository>();
            var pageLanguagesBranches = repo.GetLanguageBranches<PageData>(currentPage.ContentLink).ToList();
            var availablePageLanguages = FilterForVisitor.Filter(pageLanguagesBranches).OfType<PageData>();

            // Dictionary<String, String>
            return null;
        }
公共静态IHtmlString HrefLangLinks(此页面数据当前页面)
{
IContentRespository repo=ServiceLocator.Current.GetInstance();
var pageLanguagesBranches=repo.getLanguageBranchs(currentPage.ContentLink.ToList();
var availablePageLanguages=FilterForVisitor.Filter(pageLanguagesBranches.OfType();
//字典
返回null;
}
然而,目前可用的编程语言包含:{System.Linq.Enumerable.d_u95}


我怎样才能得到语言名称的列表?例如de de、en de或de AT?

要获取特定页面的可用语言,可以从当前页面读取
PageData.ExistingLanguages
属性。这将为您提供一个
IEnumerable
结果。要从每个
CultureInfo
对象中获取语言代码,请阅读
CultureInfo.Name
属性

代码如下所示:

currentPage.ExistingLanguages.Select(culture => culture.Name);

谢谢Stefan。作为测试,我尝试了以下方法:var test=currentPage.ExistingLanguages.Select(culture=>culture.Name);变量的内容是:System.Linq.Enumerable+WhereSelectEnumerableInterator`2[System.Globalization.CultureInfo,System.String]。我想我遗漏了什么?那是因为返回类型是一个
可枚举的
,这是在.Net中延迟加载的一种方式。如果您在末尾添加
.ToArray()
,您将得到一个字符串数组。啊,我现在明白了。谢谢,我今天晚些时候再试试!