【发布时间】:2019-04-30 20:37:51
【问题描述】:
我有一个包含 n 个对象的列表。我想从选定的索引开始最多抓取 n 个项目(-n 个以前的项目和 n + 下一个项目)。我想要一个方法,在其中我为列表提供某些参数。
如何在 C# 中实现这一点?
第一个例子:
int selectedIndex = 5
int itemsToTake = 4(2 个上一个和 2 个下一个)
返回列表 = 3-4-5-6-7
第二个例子:
int selectedIndex = 1
int itemsToTake = 4(前 1 个,后 3 个,因为列表以 0 开头)
返回列表 = 0-1-2-3-4
我已经尝试过list.skip().take()的组合,只是效果不太好。
示例:
nextIndex = nextIndex - prevIndex + 1;
return List.Skip (prevIndex) .Take (nextIndex) .ToList ();
【问题讨论】: