c# - tag - ¿Cómo obtener artículos en un rango específico(3-7) de la lista?
tags for likes 2017 (3)
¿Cuál sería la forma más eficiente de seleccionar todos los elementos en un rango específico de una lista y colocarlos en uno nuevo?
List<DataClass> xmlList = new List<DataClass>();
Esta es mi lista, y me gustaría poner todos los elementos de DataClass entre el rango (3 - 7) en una nueva lista.
¿Cuál sería la forma más eficiente? ¿Un bucle foreach que cuenta ++ cada vez hasta que alcanza los elementos entre un rango y agrega esos elementos a la nueva lista?
El método que estás buscando es GetRange :
List<int> i = new List<int>();
List<int> sublist = i.GetRange(3, 4);
var filesToDelete = files.ToList().GetRange(2, files.Length - 2);
Del resumen:
// Summary:
// Creates a shallow copy of a range of elements in the source System.Collections.Generic.List<T>.
// Parameters:
// index:
// The zero-based System.Collections.Generic.List<T> index at which the range
// starts.
// count:
// The number of elements in the range.
List implementa un método CopyTo
que le permite especificar el inicio y la cantidad de elementos que se copiarán. Yo sugeriría usar eso.
Si por alguna razón no le gusta usar el método GetRange, también puede escribir lo siguiente usando LINQ .
List<int> list = ...
var subList = list.Skip(2).Take(5).ToList();