Liste İçeriğini Başka Bir Listeye Ekleme C #


158

Şunlara sahibim:

  1. GlobalStrings adlı ana liste
  2. LocalStrings adında başka bir Liste

Örneğin bir döngüde:

List<string> GlobalStrings = new List<string>(); 
List<string> localStrings = new List<string>();
for(x=1;x<10;x++)
{
    localStrings.Add("some value"); 
    localStrings.Add("some value");
}
// Want to append localStrings to GlobalStrings as easily as possible

3
akış üzerinde yığın her zaman
sallanır

2
Yanlış yapıyorsunuz localStrings = new List<string>;, fordöngüden önce yerleştirilmelidir
Wassim AZIRAR

1
Wassim, bence bu yüzden yerel ve küresel arasında ayrım yapıyor; localStrings for-loop kapsamı için yereldir, GlobalStrings global kapsamdadır.
Dagrooms

Bu beri belli ki olabilir sadece, (davetiye tamamen Wassim en gibi açıklamaları yanlış fikirli olduğunu) fakir bir örnektir Addiçin GlobalStringsyerine göre localStrings. Ve döngü FWIW sadece 9 kez çalışır. Daha iyi olurdufor (int x = 0; x < 10; ++x) {var localStrings = GetAListOfStrings(); /* append those to GlobalStrings */}
Jim Balter

Yanıtlar:



55
GlobalStrings.AddRange(localStrings);

Bu işe yarıyor.

Belgeler: List<T>.AddRange(IEnumerable<T>).


2
Bir karakter size bir oy verdi. Dikkatli olun, genellikle sizi daha çok kaybeder! (Uyku veya akıl sağlığı gibi.)
deed02392 23:13

Doğru olsa da, bu cevap şimdi Lee'nin cevabının bir kopyası olarak duruyor.
Octur

22

AddRange yöntemini deneyin:

GlobalStrings.AddRange(localStrings);

Doğru olsa da, bu cevap şimdi Lee'nin cevabının bir kopyası olarak duruyor.
Octur

9

Linq ile

var newList = GlobalStrings.Append(localStrings)

3
Ek var gibi değil mi? Bunun için MSDN doc'a bir bağlantınız var mı?
Pod

2
Belki de bunu kopyalama çok anlamlı olur gerçi ... CONCAT anlamına geliyordu ve nasıl iyi bir örnektir değil LINQ kullanmak.
Jim Balter

5

İşte benim örnek:

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

2

"terse" almak istiyorsanız :)

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

for(int x=1; x<10; x++) GlobalStrings.AddRange(new List<string> { "some value", "another value"});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.