簡體   English   中英

使用LINQ從字符串數組中刪除元素包含值

[英]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

EnumerateFilesGetFiles方法的區別如下:使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM