2009-12-01 14 views
110

Tengo el siguiente:añadir una Lista de contenido a otro Lista C#

  1. una lista principal llamados GlobalStrings
  2. Otra lista llamada localStrings

En un bucle, por ejemplo:

GlobalStrings = new List<string>(); 
for(x=1;x<10;x++) 
{ 
    localStrings = new List<string>; 
    localStrings.Add("some value"); 
    localStrings.Add("some value"); 

    // Want to append localStrings to GlobalStrings as easily as possible 
} 
+3

pila sobre el flujo siempre rocas. ... pregunta curiosa ... –

+2

Lo estás haciendo mal, 'localStrings = new List ;' debe colocarse antes del 'for' loo p –

+1

Wassim, creo que es por eso que él diferencia entre local y global; localStrings es local para el ámbito for-loop, GlobalStrings se encuentra en el ámbito global. – Dagrooms

Respuesta

191
GlobalStrings.AddRange(localStrings); 

Nota: No puede declarar el objeto de la lista utilizando la interfaz (IList).

+2

+1 Worked Perfectly – shmeeps

+1

¡Apoyrado! Gracias –

8

Con Linq

var newList = GlobalStrings.Append(localStrings) 
+0

¿Anexar no parece existir? ¿Tiene un enlace al documento de MSDN para ello? – Pod

35
GlobalStrings.AddRange(localStrings); 

Creo que funciona.

Hubo un error tipográfico. Agregué esta línea para alejarme del problema de "edición de un solo carácter no permitido".

+0

Votaron también – shmeeps

+1

Un personaje te perdió un voto popular. ¡Ten cuidado, a menudo te pierde mucho más! (Como el sueño o la cordura) – deed02392

16

Try-AddRange método:

GlobalStrings.AddRange(localStrings); 
1

si usted quiere conseguir "escueto" :)

List<string>GlobalStrings = new List<string>(); 

for(int x=1; x<10; x++) GlobalStrings.AddRange(new List<string> { "some value", "another value"}); 
3

Aquí está mi ejemplo:

private List<int> m_machinePorts = new List<int>(); 

    public List<int> machinePorts 
    { 
     get { return m_machinePorts; } 
    } 

    Init() 
    { 
     // Custom function to get available ethernet ports 
     List<int> localEnetPorts = _Globals.GetAvailableEthernetPorts(); 

     // Custome function to get available serial ports 
     List<int> localPorts = _Globals.GetAvailableSerialPorts(); 

     // Build Available port list 
     m_machinePorts.AddRange(localEnetPorts); 
     m_machinePorts.AddRange(localPorts); 
    } 
Cuestiones relacionadas