我有一个对象列表,需要从此列表中获取记录列表。就像我的国家,我需要获得国家名称为“澳大利亚”和国家“Indonasia”的国家名单,该名单将不会被分类。使用Linq在两条记录之间获取记录
正在使用c#。
我试图使用类似的东西,获取第一个和第二个索引,然后用它来获取带有for循环的列表,但如果可以在单个查询中完成则会很方便。
我有一个对象列表,需要从此列表中获取记录列表。就像我的国家,我需要获得国家名称为“澳大利亚”和国家“Indonasia”的国家名单,该名单将不会被分类。使用Linq在两条记录之间获取记录
正在使用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
字符串属性。)
请注意,这并不是在所有国家进行排序 - 你是否希望这个是从你的问题不清楚或没有,但它的在SkipWhile
之前添加一个OrderBy
。
本应该做的工作
var query = data.SkipWhile(x => x != "Australia").TakeWhile(x => x != "Indonesia")
你可以发布你目前正在使用的代码? – caesay