1

我的功能:

 public void loadCultureList()
 {
        CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
        ddlCulture.DataSource = cultures; //ddlCulture is dropdownlist id
        ddlCulture.DataTextField = "DisplayName";
        ddlCulture.DataValueField = "IetfLanguageTag";
        ddlCulture.DataBind();
  }

当我使用此函数绑定时,dropdownlist我得到第一项是Arabic.


文化

但我希望第一项必须是English. 有什么技巧可以达到这个结果吗?谢谢。

4

2 回答 2

2

您可以在数组中找到相应的文化cultures并创建一个新数组,其中英语是第一项,所有其他项都“下移”了一个位置。

使用 LINQ 非常简单:

var english = new[] { cultures.Single(ci => ci.DisplayName == "English") };
cultures = english.Concat(cultures.Except(english)).ToArray();
于 2012-07-10T07:39:27.070 回答
0

尝试使用这个:

CultureInfo[] cultures = CultureInfo
    .GetCultures(CultureTypes.AllCultures)
    .OrderBy(p => p.EnglishName == "English" ? 0 : 1)
    .ToArray();

如果您想确保列表按英文名称排序,您可以使用

CultureInfo[] cultures = CultureInfo
    .GetCultures(CultureTypes.AllCultures)
    .OrderBy(p => p.EnglishName == "English" ? 0 : 1)
    .ThenBy(p => p.EnglishName)
    .ToArray();
于 2012-07-10T07:39:38.683 回答