これらは文字列の配列ではなく、2つの文字列です。
したがって、コンテンツの同等性をチェックする前に、実際にそれらをサブストリングに分割する必要があります。
あなたはこのようにすることができます:
string _exists = "Adults,Men,Women,Boys";
string _check = "Men,Women,Boys,Adults,fail";
var checks = _check.Split(',');
var exists = _exists.Split(',');
bool stringsEqual = checks.OrderBy(x => x).SequenceEqual(exists.OrderBy(x => x));
いくつかの特殊なケースを少しスピードアップするために、LINQコードを呼び出す前に長さをチェックすることができます(長さが異なる場合は2つのOrderByを回避します)。さらに、メモリを節約するために、分割配列でインプレースソートを使用できます。
string _exists = "Adults,Men,Women,Boys";
string _check = "Men,Women,Boys,Adults,fail";
var checks = _check.Split(',');
var exists = _exists.Split(',');
if(checks.Length != exists.Length)
return false;
Array.Sort(checks);
Array.Sort(exists);
if (checks.SequenceEqual(exists))
return true;
return false;
明らかに、これらの最適化は、文字列が非常に長い場合にのみ役立ちます。それ以外の場合は、LINQワンライナーを使用するだけです。