Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Sorted List of Available Cultures in .NET

0.00/5 (No votes)
16 Mar 2014 2  
Get alphabetically ordered list of available cultures in .NET

Introduction

If you ever wanted to populate a drop down list (combo box) with a list of available cultures, for sure you have had the following problem: the list CultureInfo.GetCultures() provides you an alphabetically unsorted list. The following code snippet will help you sort cultures based on your criteria.

There is nothing fancy here, just using the existing List.Sort() and string.Compare() functions provided by .NET.

Background

Check CultureInfo class on MSDN here.

Using the Code

The following piece of code returns CultureTypes.SpecificCultures list, alphabetically ordered by culture's NativeName. You can change it to sort by EnglishName, DisplayName or any other CultureInfo property you want.

/// <summary> Alphabetically ordered list of cultures </summary>
/// <param name="cultureType">Culture type</param>
/// <returns>Alphabetically ordered list of cultures</returns>
public IEnumerable<CultureInfo> GetCultureList(CultureTypes cultureType = CultureTypes.SpecificCultures)
{
    var cultureList = CultureInfo.GetCultures(cultureType).ToList();
    cultureList.Sort((p1, p2) => string.Compare(p1.NativeName, p2.NativeName, true));
    return cultureList;
}  

Points of Interest

Always use the already existing .NET functionality as your first choice, fallback to custom solution when not otherwise possible.

Have fun!

History

  • Version 1.1 - Grammar and spell fixes
  • Version 1.0 - Initial version

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here