С# Array Merge Without Dupes

Скажем, у меня есть эти два массива:

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

Как бы я объединил их для получения третьего массива: string[3]{"Hello", "Stack", "Overflow"}?

Ответ 1

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

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

Ответ 2

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

(если у вас есть директива LINQ и using System.Linq;)

Ответ 3

Старый способ сделать это

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

Новый и лучший способ, используя. Net Framework 3.5 + LINQ

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

Ответ 4

ar2.Union<string>(ar1, StringComparer.CurrentCultureIgnoreCase).ToArray<string>();