using System.Globalization;
using System.Collections.Generic;
public static void Main()
var listSeparators = new Dictionary<string, List<CultureInfo>>();
var decimalPoints = new Dictionary<string, List<CultureInfo>>();
var csvFormats = new Dictionary<string, List<CultureInfo>>();
foreach (var culture in CultureInfo.GetCultures(CultureTypes.NeutralCultures))
var listSeparator = culture.TextInfo.ListSeparator;
var decimalPoint = culture.NumberFormat.NumberDecimalSeparator;
if (listSeparators.ContainsKey(listSeparator)) {
listSeparators[listSeparator].Add(culture);
listSeparators.Add(listSeparator, new List<CultureInfo>{ culture });
if (decimalPoints.ContainsKey(decimalPoint)) {
decimalPoints[decimalPoint].Add(culture);
decimalPoints.Add(decimalPoint, new List<CultureInfo> { culture });
var csvFormat = listSeparator + decimalPoint;
if (csvFormats.ContainsKey(csvFormat)) {
csvFormats[csvFormat].Add(culture);
csvFormats.Add(csvFormat, new List<CultureInfo> { culture });
Console.WriteLine(culture.EnglishName + " " + listSeparator + " " + decimalPoint);
Console.WriteLine("Decimal Points");
foreach (var decimalPoint in decimalPoints) {
Console.WriteLine(decimalPoint.Key + ": " + decimalPoint.Value.Count);
Console.WriteLine("List Separators");
foreach (var listSeparator in listSeparators) {
Console.WriteLine(listSeparator.Key + ": " + listSeparator.Value.Count);
Console.WriteLine("CSV Formats");
foreach (var csvFormat in csvFormats) {
Console.WriteLine(csvFormat.Key + ": " + csvFormat.Value.Count);
Console.WriteLine(csvFormat.Value.Join());