我有一個壓縮文件列表,其中包含一個ZipArchive
和壓縮的filename as a String
。我也有我需要檢查我的列表的文件名的最終列表,如果文件不匹配我的文件名的最終列表,他們應該從我的壓縮文件列表中轉儲。查找變量名數組中是否不存在文件名
我站在那可能不是最好的措辭,所以讓我嘗試解釋我的代碼/僞代碼。
這裏是我的清單:
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
}
註釋掉部分是什麼我不確定這樣做。有人能夠幫助我走上正軌嗎?謝謝!
編輯1
我知道我最初沒有說,但我認爲LINQ將採取更清潔的路線。我只是不積極如何。我假設使用.RemoveAll(..)
將是我想要去的方式?
這正是我要寫的。如果這不是你的答案,我相信它會讓你走上正軌。 – 2014-12-01 18:49:53
我喜歡你用'.Remove()'解決我的問題的方式,但是如果有很多內容,然後一個被刪除並且順序改變,這會在我的列表中導致問題嗎? – scapegoat17 2014-12-01 19:01:45
如果您要從列表中刪除項目,那麼無論您做什麼,它都會發生變化。使用.remove()應該保留順序,但只是刪除有問題的項目。但是,正如在另一個答案中指出的那樣,這可能會通過修改您在foreach中迭代的列表而導致問題。我建議更好的方法是使用Linq,就像我編輯的代碼一樣。 – Redit0 2014-12-01 20:33:01