目前我的应用程序将信息存储为当地星期几名称的纯文本。 (例如蒙塔格、迪恩斯塔格)。这很容易出错(大写、小写)。我知道有 DayOfWeek 枚举。如何从枚举获取本地化版本已有详细记录,并涵盖了许多问题。
问题恰恰相反。德语单词到枚举。我知道开关盒的原始方法。对于多种语言,我可以获取每个枚举值的翻译并进行切换。有原生解决方案吗?
您已经知道如何从
DayOfWeek
获取本地化名称,因此您可以获取所有日期的名称,并将它们与输入字符串进行比较。
例如,我在这里创建一个
Dictionary<string, DayOfWeek>
,其中包含文化敏感、不区分大小写的相等比较器。
var cultureInfo = CultureInfo.GetCultureInfoByIetfLanguageTag("de");
var inputString = "Sonntag"
var formatInfo = DateTimeFormatInfo.GetInstance(cultureInfo);
var dict = Enumerable.Range(0, 7).ToDictionary(
x => formatInfo.GetDayName((DayOfWeek)x),
x => (DayOfWeek)x,
StringComparer.Create(cultureInfo, true)
);
Console.WriteLine(dict[inputString]);