[英]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.