如何从列表中查找特定索引中的元素到最后?

RAK*_*RAK 1 c# linq

如何从特定元素开始搜索类型列表中的元素?

我可以使用for循环实现相同的目的如下:

bool found = false;
for(int i=counter+1;i<=lstTags.Count()-1;i++)
   {
    if (lstTags[i].PlateFormID == plateFormID)
      {
        found = true;
        break;
       }
    }
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否可以通过内置功能以更有效的方式完成,例如:

var nextItem=lstTags.FirstOrDefault(a=>a.PlateFormID==plateFormID, startIndex); 
Run Code Online (Sandbox Code Playgroud)

Yel*_*yev 6

你可以使用Enumerable.Skip:

var nextItem = lstTags.Skip(startIndex).FirstOrDefault(a => a.PlateFormID == plateFormID);
Run Code Online (Sandbox Code Playgroud)

这将过滤掉第一个startIndex元素,然后PlateFormID在过滤的可枚举中找到第一个匹配项.