C # Сходства двух массивов

Там должен быть лучший способ сделать это, я уверен ...

// Simplified code
var a = new List<int>() { 1, 2, 3, 4, 5, 6 };
var b = new List<int>() { 2, 3, 5, 7, 11 };
var z = new List<int>();
for (int i = 0; i < a.Count; i++)
    if (b.Contains(a[i]))
        z.Add(a[i]);
// (z) contains all of the numbers that are in BOTH (a) and (b), i.e. { 2, 3, 5 }

Я не возражаю использовать вышеупомянутую технику, но мне нужно что-то быстрое и эффективное (мне нужно несколько раз сравнивать очень большие списки <>), но это ни то, ни другое! Есть какие-нибудь мысли?

Edit: Это имеет значение - я использую .NET 4.0, исходные массивы уже отсортированы и не содержат дубликатов.

5
задан Jocie 28 February 2012 в 11:49
поделиться