2009-12-01 9 views
110

Je donne les résultats suivants:Annexer une Liste Contenu à une autre liste C#

  1. Une liste principale appelée GlobalStrings
  2. Une autre liste appelée localStrings

Dans une boucle par exemple:

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

pile sur les flux roches toujours. ..nice question ... –

+2

Vous le faites mal, 'localStrings = nouvelle liste ;' devrait être placé avant le 'for' loo p –

+1

Wassim, je pense que c'est pourquoi il différencie entre local et global; localStrings est local à la portée for-loop, GlobalStrings est dans la portée globale. – Dagrooms

Répondre

191
GlobalStrings.AddRange(localStrings); 

Remarque: Vous ne pouvez pas déclarer l'objet de liste à l'aide de l'interface (IList).

+2

+1 A travaillé parfaitement – shmeeps

+1

Upvoted! Merci –

8

Avec Linq

var newList = GlobalStrings.Append(localStrings) 
+0

Ajouter ne semble pas exister? Avez-vous un lien vers le document MSDN pour cela? – Pod

35
GlobalStrings.AddRange(localStrings); 

Je pense que cela fonctionne.

Il y avait une faute de frappe. J'ai ajouté cette ligne pour échapper au problème du "single character edit disallowed".

+0

Upvoted ainsi – shmeeps

+1

Un personnage vous a perdu un upvote. Soyez averti, il vous perd souvent beaucoup plus! (Comme le sommeil ou la santé mentale.) – deed02392

16

Essayez AddRange méthode:

GlobalStrings.AddRange(localStrings); 
1

si vous voulez obtenir "laconique" :)

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

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

Voici mon exemple:

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); 
    } 
Questions connexes