【问题标题】:CultureInfo and default selection valueCultureInfo 和默认选择值
【发布时间】:2012-07-10 07:35:55
【问题描述】:

我的功能:

 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。有什么技巧可以达到这个效果吗?谢谢。

【问题讨论】:

    标签: c# asp.net cultureinfo


    【解决方案1】:

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

    使用 LINQ 非常简单:

    var english = new[] { cultures.Single(ci => ci.DisplayName == "English") };
    cultures = english.Concat(cultures.Except(english)).ToArray();
    

    【讨论】:

      【解决方案2】:

      试试这个:

      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();
      

      【讨论】:

        猜你喜欢
        • 2013-03-26
        • 1970-01-01
        • 2018-07-24
        • 2017-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-08
        • 1970-01-01
        相关资源
        最近更新 更多