using System.Globalization;
public class SamplesCultureInfo
public static void Main()
Console.WriteLine(" {0} {1, 80}","SPECIFIC CULTURE", "PARENT CULTURE");
Action<CultureTypes, Func<CultureInfo, bool>> display = (c, exp) =>
foreach (CultureInfo ci in CultureInfo.GetCultures(c).Where(exp).OrderBy(x => x.TwoLetterISOLanguageName))
Console.Write("0x{0} {1} {2, -70}", ci.LCID.ToString("X4"), ci.Name, ci.EnglishName);
Console.WriteLine("0x{0} {1} {2} : {3}", ci.Parent.LCID.ToString("X4"), ci.Parent.Name, ci.Parent.EnglishName, ci.Parent.IsNeutralCulture);
Action<CultureTypes> displayAll = c => display(c, x => true);
display(CultureTypes.SpecificCultures, x => !x.Parent.IsNeutralCulture);