c# - 如何从特定索引到末尾查找列表中的元素?

标签 c# linq

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

我可以使用 for 循环实现相同的效果,如下所示:

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

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

var nextItem=lstTags.FirstOrDefault(a=>a.PlateFormID==plateFormID, startIndex); 

最佳答案

您可以使用 Enumerable.Skip :

var nextItem = lstTags.Skip(startIndex).FirstOrDefault(a => a.PlateFormID == plateFormID);

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

关于c# - 如何从特定索引到末尾查找列表中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54749529/

相关文章:

c# - Entity Framework 以不确定的方式未经许可删除有效内容?

C# - 你能通过数字值调用枚举吗?

sql - 在有 in 子句的地方将 SQL 转换为 Linq

c# - 与 C# 中的现有列表相比,如何对列表进行排序?

c# - 对非相关实体进行复杂连接的 nhibernate queryover

c# - 类似于 Json.Net 可以做的 XML 序列化

C# Response.Write pdf 不适用于 Android 浏览器

C# LINQ 自动生成数字或索引

c# - 远程定时任务状态

c# - 在 C# 中旋转多列