string[] result = list1.Union(list2).ToArray();
from msdn: “This method excludes duplicates from the return set. This is different behavior to the Concat(TSource) method, which returns all the elements in the input sequences including duplicates.”