У меня есть список zipped файлов, который содержит ZipArchive
и zipped filename as a String
. У меня также есть окончательный список имен файлов, которые мне нужно проверить с моим списком, и если файлы не совпадают с моим окончательным списком имен файлов, они должны быть сброшены из моего списка zipped-файлов.Найти, если имя файла не существует в массиве имен переменных
Я подставку, которая не может быть сформулирована лучше, поэтому позвольте мне попробовать и объяснить с помощью моего кода/псевдокода.
Вот мой список:
List<ZipContents> importList = new List<ZipContents>();
Который имеет два параметра:
ZipArchive
который называетсяZipFile
String
, который называетсяFileName
filenames
это финал список имен файлов, которые я пытаюсь проверить мой список ZipContents
против.
Вот начало того, что я пытаюсь сделать:
foreach (var import in importList)
{
var fn = import.FileName;
// do some kind of lookup to see if fn would be List<String> filenames
// If not in list dump from ZipContents
}
Закомментированный из раздела является то, что я не уверен, о выполнении. Кто-нибудь сможет помочь мне на правильном пути? Благодаря!
EDIT 1
Я знаю, что я не говорю об этом изначально, но я думаю, что LINQ будет гораздо чище маршрут принять. Я просто не уверен, как это сделать. Я предполагаю, что использование .RemoveAll(..)
будет таким, каким я хотел бы пойти?
Это именно то, что я собирался написать.Если это не ваш ответ, я верю, что он должен помочь вам на правильном пути. –
Мне нравится, как вы решили мою проблему с выполнением '.Remove()', но будет ли это причиной проблемы в моем списке, если есть много содержимого, а затем удаляется и порядок изменяется? – scapegoat17
Если вы собираетесь удалять элементы из списка, это изменится независимо от того, что вы делаете. Использование .remove() должно сохранить порядок, но просто удалите этот предмет. Однако, как было указано в другом ответе, это может вызвать проблемы, изменяя список, который вы повторяете в своем foreach. Я бы предположил, что лучшим подходом будет использование Linq, как в коде из моего редактирования. – Redit0