我在这里有这段代码,基本上我正在做一个for循环,因为我从数据库中检索记录(使用实体框架),但是当我想比较使用if语句时出现错误:
IList<Model.question> lstQuestion = qn.GetRecords(taskID, activityID);
for(int i = 0 ; i <lstQuestion.Count()-1 ; i++)
{
.... //code here
if(lstQuestion[i].QuestionNo == lstQuestion[i++].QuestionNo) // error at i++
{
tb.Text = lstQuestion[i++].QuestionContent;
sp1.Children.Add(tb);
}
我试过
lstQuestion.Count()而不是lstQuestion.Count() - 1;
也行不通。
QuestionNo是我数据库表中的一列。
完全错误:
当我删除整个if语句时,它工作正常。
答案 0 :(得分:1)
关于(i ++)的上述答案是正确的。 另外,由于集合使用零基索引,你应该使用(Count() - 2)--- //(Count() - 2)+ 1是集合中的最后一项
答案 1 :(得分:0)
您将i
递增三次。试试这个:
for(int i = 0 ; i <lstQuestion.Count(); i++)
{
.... //code here
if(lstQuestion[i].QuestionNo == 1stQuestion[i+1].QuestionNo) // error at i++
{
tb.Text = lstQuestion[i+1].QuestionContent;
sp1.Children.Add(tb);
}
答案 2 :(得分:0)
在== 1stQuestion [i]中有一个数字1,而不是像ohter lstQuestion [i]引用中的小写字母L.
答案 3 :(得分:0)
这可以用if语句解决你的问题。
for(int i = 0 ; i <lstQuestion.Count()-1; i++)
{
.... //code here
if(lstQuestion[i].QuestionNo == 1stQuestion[i+1].QuestionNo)
{
tb.Text = lstQuestion[i+1].QuestionContent;
sp1.Children.Add(tb);
}
但我认为你在这一行上遇到错误
sp1.Children.Add(tb);
答案 4 :(得分:0)
尝试使用++ i而不是i ++。
IList<Model.question> lstQuestion = qn.GetRecords(taskID, activityID);
for(int i = 0 ; i <lstQuestion.Count()-1 ; i++)
{
.... //code here
if(lstQuestion[i].QuestionNo == lstQuestion[++i].QuestionNo) // error at i++
{
tb.Text = lstQuestion[i].QuestionContent;
sp1.Children.Add(tb);
}