2010-02-25 26 views

Trả lời

12
string[] arr1 = new string[2]{"Hello", "Stack"}; 
string[] arr2 = new string[2] { "Stack", "Overflow" }; 

var arr3 = arr1.Union(arr2).ToArray<string>(); 
+2

Lưu ý rằng điều này đòi hỏi .NET 3.5 và LINQ. – jrista

+3

@jrista - * nói đúng, không hoàn toàn đúng. Nó có thể là bất kỳ trình biên dịch trình biên dịch C# 3.0 .NET 2.0 với (ví dụ) LINQBridge. Không yêu cầu .NET 3.5. Và nếu bạn cuộn phương pháp mở rộng của riêng bạn, nó có thể đi bất cứ đâu, vì vậy sẽ không có đề cập đến "LINQ", ngay cả trong chỉ thị 'using'. –

+1

@Mark: Chắc chắn, * nghiêm túc * nói. Tuy nhiên, đối với các lập trình viên .NET trung bình, tôi nghĩ rằng tuyên bố của tôi là đúng và hoàn toàn có thể chấp nhận được. (Tôi nghĩ nhiều người sẽ nâng cấp lên .NET 3.5 trước khi họ chọn một số khung bên thứ ba như LINQBridge hoặc cuộn khung nội bộ của riêng mình ...) – jrista

2
string[] arr3 = arr1.Union(arr2).ToArray(); 

(nếu bạn có LINQ và một chỉ thị using System.Linq;)

0

cách Old làm

  List<string> temp = arr1.ToList<string>(); 
      foreach (string s in arr1) 
      { 
       if (!arr2.Contains(s)) 
       { 
        temp.Add(s); 
       } 
      } 
      String[] arr3 = temp.ToArray<string>(); 

mới và tốt hơn cách này, sử dụng. Net Framework 3.5 + LINQ

string[] arr3 = arr1.Union(arr2).ToArray(); 
+0

Đối với "cách cũ", 'ToList' không khả dụng. Sử dụng 'List temp = new List (arr1);' thay vào đó. –

0
ar2.Union<string>(ar1, StringComparer.CurrentCultureIgnoreCase).ToArray<string>(); 
Các vấn đề liên quan