嗨,这是我的C#代码获取idexoutofrange异常我可能知道如何解决它 [英] Hi here is my C# code getting idexoutofrange exception may I know how to fix it

查看:77
本文介绍了嗨,这是我的C#代码获取idexoutofrange异常我可能知道如何解决它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

private void ShowOldMedicalNoteCommandHandler()
      {
          if (null != this.MedicalElements)
          {
              NavigatedIndex = NavigatedIndex + 1;
              var medicalNote = MedicalElements[NavigatedIndex];
              NavigateMedicalNote(medicalNote);
              IsNewestEnabled = true;
              IsOldestEnabled = MedicalElements.Count - 1 != NavigatedIndex;
          }
      }





我的尝试:





What I have tried:

private void ShowOldMedicalNoteCommandHandler()
      {
          if (null != this.MedicalElements)
          {
              NavigatedIndex = NavigatedIndex + 1;
              var medicalNote = MedicalElements[NavigatedIndex];
              NavigateMedicalNote(medicalNote);
              IsNewestEnabled = true;
              IsOldestEnabled = MedicalElements.Count - 1 != NavigatedIndex;
          }
      }

推荐答案

显然 NavigatedIndex 是大于 MedicalElements.Count 所以只需检查一下:

Obviously NavigatedIndex is greater than the MedicalElements.Count so just check for it:
...
NavigatedIndex = NavigatedIndex + 1;
if(NavigatedIndex < MedicalElements.Count)
{
   var medicalNote = MedicalElements[NavigatedIndex];
   NavigateMedicalNote(medicalNote);
   IsNewestEnabled = true;
   IsOldestEnabled = MedicalElements.Count - 1 != NavigatedIndex;
}
else
{
 // handle this case accordingly 
}


显然,错误源于:

Apparently, the mistake stems from:
MedicalElements[NavigatedIndex]



当值为


when the value of

NavigatedIndex

大于

is greater than the number of items in

MedicalElements

中的项目数减一,不要忘记像数组一样的集合中的索引零。要防止这种情况发生,请使用计数 [ ^ ]。

minus one, not to forget indices in a collection like array start from zero. To prevent this, use Count [^].


这篇关于嗨,这是我的C#代码获取idexoutofrange异常我可能知道如何解决它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆