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