Преимущества для меня являются более компактным синергетическим программированием. Материал имеет тенденцию течь горизонтально больше, чем вертикально. Плюс он очень полезно для разработки прототипа простых алгоритмов. Не знайте, использую ли я его для его полного потенциала, но я нахожу его очень полезным.
var remains = all.Except(taken);
Обратите внимание, что не возвращает массив. Но вы должны спросить себя, действительно ли вам нужен массив или IEnumerable более подходит (подсказка: это почти всегда). Если вам действительно нужен массив, вы можете просто вызвать .ToArray ()
, чтобы получить его.
В этом случае может быть большое преимущество в производительности для , а не при использовании массива сразу. Представьте, что в вашей коллекции «все» есть от «a» до «d», а в «взятой» коллекции - «a» и «b». На данный момент переменная "Остается" еще не содержит каких-либо данных. Вместо этого это объект, который знает, как сообщить вам, какие данные будут там, когда вы его спросите. Если эта переменная вам никогда не понадобится,
Вы используете LINQ , кроме
, например all.Except (take)
.
string[] result = all.Except<string>(taken).ToArray<string>();