Sé que en python puedes hacer algo como myList[1:20]
, pero ¿hay algo similar en C#?¿Cómo trunco una lista en C#?
Respuesta
var itemsOneThroughTwenty = myList.Take(20);
var itemsFiveThroughTwenty = myList.Skip(5).Take(15);
Puede utilizar List<T>.GetRange()
:
var subList = myList.GetRange(0, 20);
De MSDN:
Crea una copia superficial de una serie de elementos en la fuente
List<T>
.
public List<T> GetRange(int index, int count)
sans LINQ QUICKY ...
while (myList.Count>countIWant)
myList.RemoveAt(myList.Count-1);
public static IEnumerable<TSource> MaxOf<TSource>(this IEnumerable<TSource> source, int maxItems)
{
var enumerator = source.GetEnumerator();
for (int count = 0; count <= maxItems && enumerator.MoveNext(); count++)
{
yield return enumerator.Current;
}
}
Tal como está, podría considerar agregar algún texto explicativo, ya que los usuarios menos experimentados podrían tener dificultades para comprender su responder. – Raad
Esto podría ser útil para la eficiencia, si realmente desea truncar la lista, no hacer una copia. Mientras que el ejemplo de Python hace una copia, la pregunta original realmente era sobre truncar la lista.
dado una lista <> objeto "lista" y desea que el primero a través de elementos 20
list.RemoveRange(20, list.Count-20);
Esto lo hace en su lugar. Esto sigue siendo O (n) ya que las referencias a cada objeto deben eliminarse, pero debe ser un poco más rápido que cualquier otro método.
- 1. ¿Cómo trunco una lista?
- 2. ¿Cómo trunco una cadena al convertir a bytes en C#?
- 3. ¿Cómo trunco las tablas correctamente?
- 4. Cómo buscar una lista en C#
- 5. ¿Cómo vaciar una lista en C#?
- 6. Cómo ordenar una lista en C#
- 7. ¿Cómo podría crear una lista en C++?
- 8. Al usar el complemento JQuery Linkify, ¿cómo trunco la URL?
- 9. ¿Cómo convierto una enumeración en una lista en C#?
- 10. ¿Cómo trunco una cadena con puntos suspensivos en un bloque de texto de Silverlight?
- 11. Inicialización de una lista genérica en C#
- 12. Eliminar objetos duplicados en una lista (C#)
- 13. Una matriz de lista en C#
- 14. ¿Cómo divido una lista basada en el índice en C#?
- 15. Almacenar una lista de métodos en C#
- 16. Crear una lista de listas en C#
- 17. Downcasting una lista de objetos en C#
- 18. ¿Cómo pasar una lista de objetos de C++ a C#?
- 19. Ordenar una lista vinculada en C
- 20. Convierta una lista en una cadena en C#
- 21. C#: ¿Cómo ordenar una lista de objetos basado en una lista de cadena
- 22. cómo copiar una lista a una nueva lista, o recuperarla por valor en C#
- 23. ¿Cómo trunco una cadena java para caber en un número dado de bytes, una vez que UTF-8 está codificado?
- 24. Cómo restar una lista genérica de otra en C# 2.0
- 25. ¿Cómo implemento una lista circular (buffer de anillo) en C?
- 26. Cómo eliminar los no duplicados de una lista en C#
- 27. Cómo filtrar una lista en C# con la expresión lambda?
- 28. ¿Cómo almacenar diferentes tipos de datos en una lista? (C++)
- 29. ¿Cómo se obtiene una lista de directorio en C?
- 30. Cómo eliminar duplicados de una lista en C#
Tenga en cuenta que estas extensiones Linq realmente crean un IEnumerable <> que se detiene después de N elementos, en lugar de crear una nueva matriz/lista. (Esto está algo oculto al usar 'var' para el tipo de variable. Si el código que sigue al truncamiento itera varias veces a través de la nueva lista, en realidad volverá a evaluar el árbol de expresiones * cada vez *. En este caso , es posible que desee insertar un '.ToList()' al final para forzar que se enumeren los elementos y se cree una nueva lista. – JaredReisinger