将星期本地化为 DayOfWeek 枚举

问题描述 投票:0回答:1

目前我的应用程序将信息存储为当地星期几名称的纯文本。 (例如蒙塔格、迪恩斯塔格)。这很容易出错(大写、小写)。我知道有 DayOfWeek 枚举。如何从枚举获取本地化版本已有详细记录,并涵盖了许多问题

问题恰恰相反。德语单词到枚举。我知道开关盒的原始方法。对于多种语言,我可以获取每个枚举值的翻译并进行切换。有原生解决方案吗?

c# date enums localization dayofweek
1个回答
0
投票

您已经知道如何从

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]);
© www.soinside.com 2019 - 2024. All rights reserved.