Вы можете попробовать установить арифметику:
bool result = !stringArray1.Except(stringArray2).Any();
мы вычитаем stringArray2
из stringArray1
, а затем проверить, есть ли у нас какой-либо элемент (который являетсяэлемент stringArray1
, отсутствующий в stringArray2
).
Редактировать: , если stringArray1
и stringArray2
могут иметь дубликатов , которые должны быть приняты вучетная запись (например, все три равные элементы должны быть найдены в stringArray2
):
bool result = !stringArray1
.GroupBy(item => item)
.Select(chunk => Tuple.Create(chunk.Key, chunk.Count()))
.Concat(stringArray2
.GroupBy(item => item)
.Select(chunk => Tuple.Create(chunk.Key, -chunk.Count()))
)
.GroupBy(item => item.Item1)
.Select(chunk => chunk.Sum(item => item.Item2))
.Any(item => item > 0);