2009-12-01 8 views
110

Ich habe folgendes:anhängen Listen Inhalt auf eine andere Liste C#

  1. Eine Hauptliste genannt GlobalStrings
  2. Eine weitere Liste genannt localStrings

In einer Schleife zum Beispiel:

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

Stapel über Fluss immer rockt. ..nice question ... –

+2

Sie tun es falsch, 'localStrings = neue Liste ;' sollte vor dem 'for' Klo platziert werden p –

+1

Wassim, ich denke, deshalb unterscheidet er zwischen lokal und global; localStrings ist lokal für den for-loop-Bereich, GlobalStrings ist im globalen Bereich. – Dagrooms

Antwort

191
GlobalStrings.AddRange(localStrings); 

Hinweis: Sie können das Listenobjekt nicht über die Schnittstelle (IList) deklarieren.

+2

+1 Perfekt gearbeitet – shmeeps

+1

Upvoted! Danke –

8

Mit Linq

var newList = GlobalStrings.Append(localStrings) 
+0

Append scheint nicht zu existieren? Haben Sie einen Link zu MSDN doc dafür? – Pod

35
GlobalStrings.AddRange(localStrings); 

Ich denke, das funktioniert.

Es gab einen Tippfehler. Ich habe diese Zeile hinzugefügt, um von dem Problem "Einzelzeichen-Bearbeitung nicht erlaubt" wegzukommen.

+0

Upvoted auch – shmeeps

+1

Ein Charakter verlor dich ein upvote. Sei gewarnt, es verliert dich oft viel mehr! (Wie Schlaf oder Verstand.) – deed02392

16

Try AddRange-Methode:

GlobalStrings.AddRange(localStrings); 
1

wenn Sie wollen "kurz und bündig" :)

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

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

hier zu bekommen, ist mein Beispiel:

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); 
    } 
Verwandte Themen