我有一连串的星期几。我用C#解析它,并将每一天存储在一个单独的变量中。例如:
string weekdayName = "Mon,Tue,Wed,Thu,Fri,Sat,Sun";
然后我使用','作为分隔符来分割它们:
var weekDayName = weekDay.Split(',');
var firstDay = weekDayName[0];
var secondDay = weekDayName[1];
var thirdDay = weekDayName[2];
var fourthDay = weekDayName[3];
var fifthDay = weekDayName[4];
var sixDay = weekDayName[5];
var seventhDay = weekDayName[6];
一切正常。但是,字符串会动态更改。用户分配星期几。例如,字符串weekDayName只能包含“ Mon,Tue”。但是我遇到的问题是,如果不是所有职位都包含价值,它将失败。
指数数组的边界之外。
我试过了:
if (weekDayName[5].Length >0)
{
var sixDay = weekDayName[5];
}
但它仍然失败...
如果缺少某些位置,我将忽略它们,如何检查并获取现有数据的值?
我想要实现的是:
DateTime currentDay = new DateTime();
currentDay = DateTime.Now;
if (currentDay.ToString("ddd") == firstDay || currentDay.ToString("ddd") == seconday)
{
// I will check the currentDay against every day of the week
//do something
}
您的索引超出范围不是您想的那样。我当然以为是这样,因为您尝试检查用户输入时从未设置的元素的长度Mon,Tue
。
var enteredDays = weekDay.Split(',');
for(var i = 0; i < enteredDays.Length; i++)
{
var day = enteredDays[i];
if(i == 0)
first = day;
else if(i == 1)
second = day;
... etc....
}
现在,您可以检查String.IsNullOrEmpty(..yourDay..)
何时需要使用从数组中提取的值。您不能.Length
在它们上使用它们,因为null
除非它们全部默认为,否则它们会爆炸string.Empty
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句