是否有一种内置方法可以IEnumerable
在 Linq-To-Objects 中拼接?
就像是:
List<string> options = new List<string>(); // Array of 20 strings
List<string> lastOptions = options.Splice(1, 5); // Gets me all strings 1 through 5 into a new list
是否有一种内置方法可以IEnumerable
在 Linq-To-Objects 中拼接?
就像是:
List<string> options = new List<string>(); // Array of 20 strings
List<string> lastOptions = options.Splice(1, 5); // Gets me all strings 1 through 5 into a new list
尝试:
List<string> options = new List<string>();
List<string> lastOptions = options.Skip(0).Take(5).ToList();
skip 用于显示如何跳过 x 个元素 (tnx drch)
你可以创建这样的东西:( 扩展方法)
public static class SpliceExtension
{
public static List<T> Splice<T>(this List<T> list, int offset, int count)
{
return list.Skip(offset).Take(count).ToList();
}
}
但这仅适用于列表。
你也可以用它IEnumerable<>
public static class SpliceExtension
{
public static IEnumerable<T> Splice<T>(this IEnumerable<T> list, int offset, int count)
{
return list.Skip(offset).Take(count);
}
}
这样列表就不会完全迭代。
像这样使用它:
List<string> lastOptions = options.Splice(1, 5).ToList();
我更喜欢这种方式,因为它可以用于多个 linq 查询。