我有一个对象列表,需要从此列表中获取记录列表。就像我有国家一样,我需要获得名称为“Australia”和国家“Indonasia”的国家/地区列表,列表不会被排序。
使用c#。
我尝试使用类似的东西,获取第一个和第二个索引,然后使用它来获取带有for循环的列表,但如果可以在单个查询中完成,则会很方便。
答案 0 :(得分:4)
如果您执行以下操作:
var elementsBetween = allElements
.SkipWhile(c => c.Name != "Australia")
.Skip(1) // otherwise we'd get Australia too
.TakeWhile(c => c.Name != "Indonasia");
你将获得你想要的结果,而不会在列表中迭代3次。
(假设您所在的国家/地区是Country
个Name
字符串属性的项目。)
请注意,这根本不对国家/地区进行排序 - 从您的问题中不清楚您是否想要这样做,但在OrderBy
之前添加SkipWhile
是微不足道的。
答案 1 :(得分:0)
这应该做的工作
var query = data.SkipWhile(x => x != "Australia").TakeWhile(x => x != "Indonesia")