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英語が最初の項目であり、他のすべての項目が1つの位置に「下に移動」した新しい配列を作成できます。

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 に答える