Tengo un List<String>
y necesito tomar una sublista de esta lista. ¿Hay algún método de Lista disponible para esto en .NET 3.5?Cómo obtener una sublista en C#
Respuesta
Desea List :: GetRange (firstIndex, count). Ver http://msdn.microsoft.com/en-us/library/21k0e39c.aspx
// I have a List called list
List sublist = list.GetRange(5, 5); // (gets elements 5,6,7,8,9)
List anotherSublist = list.GetRange(0, 4); // gets elements 0,1,2,3)
¿Eso es lo que buscas?
Si usted está mirando para eliminar los elementos sublista de la lista original, a continuación, puede hacer:
// list is our original list
// sublist is our (newly created) sublist built from GetRange()
foreach (Type t in sublist)
{
list.Remove(t);
}
¿Sería tan fácil como ejecutar una consulta LINQ en su lista?
List<string> mylist = new List<string>{ "hello","world","foo","bar"};
List<string> listContainingLetterO = mylist.Where(x=>x.Contains("o")).ToList();
Esta es una copia del segmento de la lista original, no una vista sobre una parte de la lista original. –
@ Asad El objetivo de esta respuesta fue ilustrar que el OP podría usar LINQ. Usted ha señalado que crea una copia. Fantástico. Sus talentos probablemente podrían ser mejor utilizados en la edición de esta pregunta para ilustrar el punto aún mejor de lo que lo había dejado hace 5.5 años. ¡Si lo editas, obtendrás crédito en la liga de pedantería de internet justice, y será bien ganado! –
I ([como algunas otras personas] (http: // stackoverflow.com/questions/1287340/net-equivalent-of-javas-list-sublist)) estaba buscando algo similar a 'subList' de Java, que expone una vista mutable en la lista original. Esto se comporta de manera diferente, lo que puede no ser inmediatamente obvio, así que pensé que sería útil señalarlo en beneficio de cualquiera que vea esto más adelante. Fuera del tema, es posible que desee practicar yoga o meditación o algo así; fuiste 0 a la locura de rojo en la cara sin ninguna provocación de ningún tipo. –
utilizar la cláusula de LINQ Dónde:
List<object> x = new List<object>();
x.Add("A");
x.Add("B");
x.Add("C");
x.Add("D");
x.Add("B");
var z = x.Where(p => p == "A");
z = x.Where(p => p == "B");
En las declaraciones anteriores "p" es el objeto que está en la lista. Por lo tanto si se ha utilizado un objeto de datos, es decir:
public class Client
{
public string Name { get; set; }
}
entonces su LINQ se vería así:
List<Client> x = new List<Client>();
x.Add(new Client() { Name = "A" });
x.Add(new Client() { Name = "B" });
x.Add(new Client() { Name = "C" });
x.Add(new Client() { Name = "D" });
x.Add(new Client() { Name = "B" });
var z = x.Where(p => p.Name == "A");
z = x.Where(p => p.Name == "B");
Después de elaborar, use mi primer ejemplo y agregue esto: z = x.GetRange (1, 3); x.RemoveRange (1, 3); x.AddRange (z.OrderByDescending (p => p)); – slugster
Su clase de colección podría tener un método que devuelve una colección (una lista secundaria) sobre la base de criterios pasó para definir el filtro. Crea una nueva colección con el ciclo foreach y distribúyelo.
O bien, haga que el método y el bucle modifiquen la colección existente estableciendo una marca (propiedad) "filtrada" o "activa". Esto podría funcionar, pero también podría causar problemas en el código multiproceso. Si otros objetos se apropian de los contenidos de la colección, esto es bueno o malo dependiendo de cómo se usen los datos.
revertir los artículos en una sub-lista
int[] l = {0, 1, 2, 3, 4, 5, 6};
var res = new List<int>();
res.AddRange(l.Where((n, i) => i < 2));
res.AddRange(l.Where((n, i) => i >= 2 && i <= 4).Reverse());
res.AddRange(l.Where((n, i) => i > 4));
Da 0,1,4,3,2,5,6
'Range' es verdadero con el tipo de datos entero. ¿y si su tipo de datos es 'DataTime' y necesita recuperar una lista de registros entre dos fechas específicas? – Jogi
- 1. Obtener una sublista en Haskell
- 2. ¿Cómo tomar una sublista válida en Java?
- 3. cómo crear una lista y una sublista -android?
- 4. Python encuentra longitudes de lista en una sublista
- 5. ¿Cómo ordenar una lista marcando los valores en una sublista en python?
- 6. eliminar una sublista de la lista en tcl
- 7. ¿Cómo encontrar el índice de sublista en la lista?
- 8. LINQ: agrupación basada en la propiedad en la sublista
- 9. La forma más rápida de reposicionar la sublista en python
- 10. ¿Cómo se hace una búsqueda y reemplazo de una lista con otra sublista en Prolog?
- 11. Haskell: prueba si la lista contiene una "sublista" específica
- 12. ¿Dividir lista y hacer suma de sublista?
- 13. ¿Cómo obtener una miniatura de una ventana en C#?
- 14. ¿Cómo obtener una línea específica de una cadena en C#?
- 15. Cómo obtener archivos en una ruta relativa en C#
- 16. C libcurl obtener salida en una cadena
- 17. ¿Cómo puedo obtener la dirección de una estructura en C?
- 18. Cómo obtener una serie de meses en C#
- 19. ¿Cómo obtener una parte de la ruta completa en C#?
- 20. ¿Cómo obtener valores distintos de una matriz en C#?
- 21. ¿Cómo obtener una secuencia de cámara IP en C#?
- 22. Cómo obtener la dirección IP de una máquina en C#
- 23. ¿Cómo obtener todas las palabras de una cadena en C#?
- 24. ¿Cómo obtener una cadena terminada nula de una cadena C#?
- 25. Cómo obtener una firma única de hardware/software desde una PC de Windows en c/C++
- 26. Ordenando una sublista dentro de una lista de enteros de Python
- 27. ¿Cómo obtener rápidamente Hardware-ID en C#?
- 28. Cómo obtener subcadena de cadena en C#?
- 29. ¿Cómo obtener el PID infantil en C?
- 30. ¿Cómo obtener DPI en C# .NET?
nos muestras un ejemplo de código de lo que tiene, o aclarar ? No estoy siguiendo la pregunta. – David
ya 3.5 ..sorry para el error tipográfico ... –
Tengo una lista decir List list = new list (); Necesito tomar una sublista de esta lista decir desde el índice 2 a la longitud-1 .. –