Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 错误的列表计数C_List_Indexoutofboundsexception - Fatal编程技术网

List 错误的列表计数C

List 错误的列表计数C,list,indexoutofboundsexception,List,Indexoutofboundsexception,我有一份价目表。如果列表的大小大于0,我想访问列表的最后一项。有时,当我的程序想要访问列表的最后一项时(尽管列表的大小为0),它会崩溃 在我看来,这场崩溃永远不会发生。请帮我提建议 这是我的密码 JermLib.PriceListFull plNew = DownLoadSymbolHistoricalPrice(yTicker, dirPath, intStartDate, dgwErrorList); ..... ..... if (plNew.record.Count > (i

我有一份价目表。如果列表的大小大于0,我想访问列表的最后一项。有时,当我的程序想要访问列表的最后一项时(尽管列表的大小为0),它会崩溃

在我看来,这场崩溃永远不会发生。请帮我提建议

这是我的密码

JermLib.PriceListFull plNew = DownLoadSymbolHistoricalPrice(yTicker, dirPath, intStartDate, dgwErrorList);

.....

.....

if (plNew.record.Count > (int)0 )
{
    if (plNew.record.Count < 1 ) { MessageBox.Show("PlNew Count < 1"); }
    else { }
    if (plNew.record.Count == 0) { MessageBox.Show("PlNew Count = 0"); }
    else { }
    // theese test never trigger

    // It crashes at:
    if ((  intToday - plMS.record[plMS.record.Count - 1].date >  200 & intToday - plMS.record[plMS.record.Count - 1].date < 1000)
         | intToday - plMS.record[plMS.record.Count - 1].date > 9100  )

    //due to 
    //plMS.record.Count - 1 = -1 which is out of bounds

}

听起来您只需要添加一个检查,以确保列表计数大于上次if语句的0:

if ((plNew.record.Count > 0) &&  // <- This is new
    (intToday - plMS.record[plMS.record.Count - 1].date >  200 & intToday - plMS.record[plMS.record.Count - 1].date < 1000) | 
     intToday - plMS.record[plMS.record.Count - 1].date > 9100)

欢迎来到Stackoverflow!1.请用拼写检查器检查你的问题。2.缩进代码并正确格式化。3.用您正在使用的编程语言标记问题。谢谢