C# 给定一个包含星期几的字符串,返回整数

C# 给定一个包含星期几的字符串,返回整数,c#,.net,C#,.net,有没有一种方法可以做到: string day = "Sunday"; int num = getDayOfWeek(day); //returns 0 我知道我们可以这样做,我想要相反的结果: int num = 0; //returns "Sunday" return System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int)num]; 最简单的方法可能是实现一个符合我要求的字典,但我想知

有没有一种方法可以做到:

string day = "Sunday";
int num = getDayOfWeek(day); //returns 0
我知道我们可以这样做,我想要相反的结果:

int num = 0;

//returns "Sunday"
return System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int)num]; 
最简单的方法可能是实现一个符合我要求的字典,但我想知道在
C#
DateTime
函数中是否有什么东西已经为我做到了

编辑:


正如Jon Skeet指出的,答案最好支持不同的文化日(例如英语中的“星期日”,葡萄牙语中的“Segunda”),您可以执行以下操作:

string myDay = "Tuesday";
int dayNumber = ((int)Enum.Parse(typeof(DayOfWeek), myDay)); // dayNumber = 2
一周中的每一天都映射到以下数字:

- Sunday = 0
- Monday = 1
- Tuesday = 2
- Wednesday = 3
- Thursday = 4
- Friday = 5
- Saturday = 6

有帮助吗?你需要处理多种文化吗?我不相信有什么内在的。。。但是将ToDictionary与LINQ一起使用会使它成为一行。@ManuelReis:不容易。你必须考虑将字典存储在某处以便重用它。你可以用“<代码> VAR DaNAMEDICEActudio=CultualField.CurrnultCult.DeTeMyFrase.DayNest.Sead((s,i)= >新{ key=i,value=s}))存储日名:ToDictionary(x= > x.key,x= > x.value);这正是我想要的。谢谢这会支持不同的文化吗?@ManuelReis不,不会。但如果你不介意这个限制,这是迄今为止最简单的答案。
- Sunday = 0
- Monday = 1
- Tuesday = 2
- Wednesday = 3
- Thursday = 4
- Friday = 5
- Saturday = 6