Проверьте, имеют ли два IEnumerable одинаковые значения с одинаковыми частотами

У меня есть два мультимножества, оба IEnumerable, и я хочу их сравнить.

string [] names1 = {" tom "," dick "," harry "};
строка [] names2 = {" Том "," член "," Гарри "," Гарри "};
строка [] names3 = {" Том "," член "," Гарри " , "sally"};
string [] names4 = {"dick", "harry", "tom"};

Хотите, чтобы names1 == names4 возвращал true (а self == self, очевидно, возвращает true)
Но все остальные комбинации возвращают false.

Какой способ наиболее эффективен? Это могут быть большие наборы сложных объектов.

Я смотрел на следующие действия:
var a = name1.orderby (v => v.Name);
var b = name4.orderby < MyCustomType, string> (v => v.Name);

return a == b;

12
задан finnw 4 February 2011 в 12:01
поделиться