繁体   English   中英

使用Linq在两个记录之间获取记录

[英]Getting records in between two records using Linq

我有一个对象列表,需要从该列表中获取记录列表。 就像我具有“国家/地区”一样,我需要获取名称为“ Australia”的国家/地区与“ Indonasia”的国家/地区之间的国家/地区列表,因此不会对列表进行排序。

我正在使用c#。

我试图使用类似的方法,先获取第一和第二个索引,然后使用它来获取带有for循环的列表,但是如果可以在单个查询中完成,那将很方便。

如果您执行以下操作:

var elementsBetween = allElements
        .SkipWhile(c => c.Name != "Australia")
        .Skip(1) // otherwise we'd get Australia too
        .TakeWhile(c => c.Name != "Indonasia");

您无需遍历列表3次即可获得所需的结果。

(这是假设您的国家Country是例如具有Name字符串属性的Country项目。)

请注意,这根本无法对国家/地区进行排序-从您的问题中尚不清楚您是否OrderBy ,但是在SkipWhile之前添加OrderBy并不容易。

这应该做的工作

var query = data.SkipWhile(x => x != "Australia").TakeWhile(x => x != "Indonesia")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM