我有一个包含5,6,7,8,5,4,3的int列表.我喜欢使用索引从列表中检索值.例如,我将开始索引设为1,结束索引4我将在新列表中获得6,7,8,5.我怎么能在Linq做到这一点?
var results = list.Skip(1).Take(4);
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,您的问题并不清楚您正在使用什么限制.如果您尝试在两端都包含内容,使用基于0的索引,您需要:
var results = list.Skip(startIndex).Take(endIndex - startIndex + 1);
Run Code Online (Sandbox Code Playgroud)
请注意,这不会让你得到0结果 - 你可能想要endIndex 独占,所以如果它等于startIndex,你什么也得不到.然后代码是:
var results = list.Skip(startIndex).Take(endIndex - startIndex);
Run Code Online (Sandbox Code Playgroud)
或者另一种方法是反过来使用它们.例如,上面的最后一个片段相当于:
var results = list.Take(endIndex).Skip(startIndex);
Run Code Online (Sandbox Code Playgroud)