Ho un List<String>
e ho bisogno di prendere un elenco secondario di questa lista. Esistono metodi di List disponibili per questo in .NET 3.5?Come ottenere un elenco secondario in C#
risposta
Volete List :: getRange (firstIndex, conteggio). Vedi 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)
È quello che stai cercando?
Se stai cercando di eliminare gli elementi sottolista dalla lista originale, è possibile poi fare:
// list is our original list
// sublist is our (newly created) sublist built from GetRange()
foreach (Type t in sublist)
{
list.Remove(t);
}
sì questo quello ... Ora ho bisogno di invertire il contenuto di sottolista e metterlo di nuovo alla lista originale –
Non è possibile rimuovi gli oggetti da una lista mentre esegui un'iterazione su di essi con un foreach .....! – slugster
Bene, dovresti essere in grado di gestire te stesso. :) – Josh
sarebbe facile come eseguire una query LINQ sulla vostra lista?
List<string> mylist = new List<string>{ "hello","world","foo","bar"};
List<string> listContainingLetterO = mylist.Where(x=>x.Contains("o")).ToList();
Questa è una copia del segmento dell'elenco originale, non una vista su una parte dell'elenco originale. –
@Asad Il punto di questa risposta era di illustrare che l'OP poteva usare LINQ. Hai fatto notare che crea una copia. Fantastico. Probabilmente i tuoi talenti potrebbero essere meglio utilizzati nella modifica di questa domanda per illustrare il punto ancora più bello di come l'avevo lasciato 5.5 anni fa. Se lo modifichi, riceverai credito nella lega della pedanteria di internet, e sarà ben meritato! –
I ([come alcune altre persone] (http: // stackoverflow.it/questions/1287340/net-equivalent-of-javas-list-sublist)) stava cercando qualcosa di simile a 'subList' da Java, che espone una vista mutevole nella lista originale. Ciò si comporta in modo diverso, il che potrebbe non essere immediatamente ovvio, quindi ho pensato che sarebbe stato utile indicarlo a beneficio di chiunque lo vedesse in seguito. Fuori tema, potresti voler prendere yoga o meditazione o qualcosa del genere; sei diventato pazzo in faccia senza alcuna provocazione. –
utilizzare la clausola Dove da LINQ:
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");
Nelle dichiarazioni di cui sopra "p" è l'oggetto che è nella lista. Quindi, se è stato utilizzato un oggetto di dati, vale a dire:
public class Client
{
public string Name { get; set; }
}
allora il vostro LINQ sarebbe simile a questa:
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");
Dopo aver elaborato, utilizzare il mio primo esempio e aggiungere questo: z = x.GetRange (1, 3); x.RemoveRange (1, 3); x.AddRange (z.OrderByDescending (p => p)); – slugster
La classe di raccolta potrebbe avere un metodo che restituisce un insieme (un elenco secondario) sulla base di criteri passato per definire il filtro. Costruisci una nuova collezione con il ciclo foreach e distribuiscilo.
Oppure, hanno il metodo ed il ciclo modificano la collezione esistente impostando una o flag "filtrato" "attivo" (proprietà). Questo potrebbe funzionare ma potrebbe anche causare poblems nel codice multithread. Se altri oggetti sono presenti sul contenuto della raccolta, ciò è positivo o negativo a seconda di come si usano i dati.
invertire le voci di un elenco secondario
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));
Dà 0,1,4,3,2,5,6
'Range' è vero con il tipo di dati intero. Cosa succede se il tuo tipo di dati è 'DataTime' e hai bisogno di recuperare un elenco di record tra due date specifiche? – Jogi
- 1. Come verificare se un elenco contiene un elenco secondario
- 2. Python: Elenco contenente elenco secondario di stringhe
- 3. Verificare la presenza di un elenco secondario
- 4. Java allineati collezione con un elenco secondario conteggio basata
- 5. come ottenere l'accesso secondario di UIView?
- 6. C# - Aggiornamento di un elemento secondario all'interno di un listview
- 7. C# Elenco ordinato: come ottenere l'elemento successivo?
- 8. Come ottenere un elenco distinto da un elenco personalizzato?
- 9. Come per aggiungere un elemento di un elenco secondario in python
- 10. Come posso fare un ordinamento secondario in un elenco di mappe
- 11. Come ottenere valore elemento secondario separato da virgole in jQuery
- 12. Come ottenere un elenco di unità logiche
- 13. Come ordinare un elenco in C#
- 14. Come posso troncare un elenco in C#?
- 15. Come copiare un elenco <> in un altro elenco <> con Comparsion in C#
- 16. Come si esegue l'ordinamento secondario in python?
- 17. sottolista in un elenco
- 18. Come analizzare/analizzare semplice codice C/C++ da C# per ottenere un elenco di metodi
- 19. Usa interrogazione mangusta di ottenere solo un documento secondario
- 20. Come ottenere un elenco di tutte le dichiarazioni globali di un programma C/C++ utilizzando Clang?
- 21. Come ottenere un elenco di viste MySQL?
- 22. Come posso avviare un processo secondario in Windows?
- 23. Proiezione di MongoDB documento secondario utilizzando C conducente # .NET 2.0
- 24. Come allineare il testo per un singolo elemento secondario in un controllo ListView utilizzando C#?
- 25. elenco di file Ottenere in una cartella utilizzando C
- 26. Come disabilitare un monitor secondario (con ChangeDisplaySettingsEx)?
- 27. Applicazione C++ per scollegare il monitor secondario
- 28. Come posso ottenere le permutazioni di un elenco?
- 29. Come ottenere un elenco di dispositivi di acquisizione video (webcam) su linux (ubuntu)? (C/C++)
- 30. Come ottenere la posizione reale di un nodo secondario in SceneKit dopo la rotazione?
ci mostri un esempio di codice di quello che hai, o chiarire ? Non sto seguendo la domanda. – David
ya 3,5 ..sorry per l'errore di battitura .. –
Ho una lista dicono List list = nuova lista (); ho bisogno di prendere un sottolista da questo elenco dire dall'indice 2 alla lunghezza-1 .. –