[英]Remove Element From String Array Using LINQ Contains Value
我試圖從包含特定值的字符串數組中刪除所有元素。 在這種情況下,我的字符串數組包含一堆文件及其文件夾結構,這些文件將在以后的操作中壓縮。 我需要排除包含“ CDN”值的特定文件。
示例字符串結構如下所示
C:\Production\Websites\WebSite1\index.html
C:\Production\Websites\WebSite1\product.html
C:\Production\Websites\CDN\content.html
C:\Production\Websites\CDN\frame.html
C:\Production\Websites\WebSite2\index.html
C:\Production\Websites\WebSite2\product.html
值僅是示例...但是我需要從包含“ \\ CDN \\”的列表中完全刪除列表中的元素。
這就是我獲取文件夾的方式。
string[] files = Directory.GetFiles(@"C:\Production\Websites", "*.*", SearchOption.AllDirectories);
我嘗試過這樣的事情,但顯然我被卡住了...
string[] files = Directory.GetFiles(@"C:\Production\Websites", "*.*", SearchOption.AllDirectories).Where(s => !s.Contains("CDN"))....???
有任何想法嗎? 干杯
從MSDN
EnumerateFiles
和GetFiles
方法的區別如下:使用EnumerateFiles
,可以在開始返回整個集合之前開始枚舉名稱集合;EnumerateFiles
,您可以開始枚舉名稱集合。 使用GetFiles
,必須等待返回整個名稱數組,然后才能訪問該數組。 因此,當您處理許多文件和目錄時,EnumerateFiles
可能會更有效。
所以:枚舉文件,過濾序列並生成結果數組
string[] files = Directory.EnumerateFiles(@"C:\Production\Websites", "*.*", SearchOption.AllDirectories)
.Where(s => !s.Contains("CDN"))
.ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.