如何将月份名称(字符串)解析为整数以在C#中进行比较?

我需要能够比较数组中的某些月份名称。


如果有一些直接的方法,那就太好了:


Month.toInt("January") > Month.toInt("May")

我的Google搜索似乎表明唯一的方法是编写自己的方法,但这似乎是一个足够普遍的问题,我认为它已经在.Net中实现,以前有人这样做过吗?


陪伴而非守候
浏览 357回答 3
3回答

慕少森

如果使用DateTime.ParseExact()几个人建议的-方法,则应仔细考虑在非英语环境中运行应用程序时要发生的事情!在丹麦,哪个工作ParseExact("Januar", ...),ParseExact("January", ...)应该工作,哪个应该失败?这将是之间的差异CultureInfo.CurrentCulture和CultureInfo.InvariantCulture。

噜噜哒

一种简单的解决方案是使用名称和值创建一个Dictionary。然后使用Contains()可以找到正确的值。Dictionary<string, string> months = new Dictionary<string, string>(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "january", "01"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "february", "02"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "march", "03"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "april", "04"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "may", "05"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "june", "06"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "july", "07"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "august", "08"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "september", "09"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "october", "10"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "november", "11"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { "december", "12"},};foreach (var month in months){&nbsp; &nbsp; if (StringThatContainsMonth.ToLower().Contains(month.Key))&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; string thisMonth = month.Value;&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP