2009-12-01 28 views
110

Tôi đã điều sau đây:Nối một Lists Những nội dung khác Danh mục C#

  1. Một Danh sách chính gọi GlobalStrings
  2. Danh sách khác gọi localStrings

Trong một vòng lặp ví dụ:

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

ngăn xếp trên dòng chảy luôn đá. ..nice question ... –

+2

Bạn đang làm sai, 'localStrings = new List ;' nên được đặt trước 'for' loo p –

+1

Wassim, tôi nghĩ đó là lý do tại sao anh ấy phân biệt giữa địa phương và toàn cầu; localStrings là cục bộ cho phạm vi vòng lặp, GlobalStrings nằm trong phạm vi toàn cục. – Dagrooms

Trả lời

191
GlobalStrings.AddRange(localStrings); 

Lưu ý: Bạn không thể khai báo đối tượng danh sách bằng giao diện (IList).

+2

+1 Làm việc hoàn hảo – shmeeps

+1

Được thăng hạng! Cảm ơn –

8

Với Linq

var newList = GlobalStrings.Append(localStrings) 
+0

Nối dường như không tồn tại? Bạn có một liên kết đến MSDN doc cho nó? – Pod

35
GlobalStrings.AddRange(localStrings); 

Tôi nghĩ rằng nó hoạt động.

Có lỗi đánh máy. Tôi đã thêm dòng này để thoát khỏi vấn đề "chỉnh sửa nhân vật đơn không được phép".

+0

Được thăng hạng cũng như – shmeeps

+1

Một nhân vật đã đánh mất bạn một bài viết tuyệt vời. Được cảnh báo, nó thường mất bạn nhiều hơn nữa! (Giống như giấc ngủ hay sự tỉnh táo.) – deed02392

16

Hãy thử AddRange-phương pháp:

GlobalStrings.AddRange(localStrings); 
1

nếu bạn muốn để có được "ngắn gọn" :)

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

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

Dưới đây là ví dụ của tôi:

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); 
    } 
Các vấn đề liên quan