亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取 DirectoryInfo 列表,其中目錄名稱包含存儲在 List<string> ?

如何獲取 DirectoryInfo 列表,其中目錄名稱包含存儲在 List<string> ?

元芳怎么了 2021-11-21 10:00:30
假設我有一個字符串列表。這些字符串將是我要打開的目錄名稱的一部分。var listOfStrings = new List<string>(){"Foo", "Bar", "LocalHost", "SomeIPAddress"};如果這是我的列表,我的目錄可能如下所示:Foo_TodaysDate_ThisFileNameIsMostlyLongAndUnhelpfulBar_TodaysDate_ThisFileNameIsMostlyLongAndUnhelpfulLocalHost_TodaysDate_ThisFileNameIsMostlyLongAndUnhelpfulSomeIPAddress_TodaysDate_ThisFileNameIsMostlyLongAndUnhelpful所以我在這里有將目錄信息加載到列表中的代碼:m_jsonDirectories = new DirectoryInfo(@"C:\ProgramData\SCLDDB\ReportLogs\")    .GetDirectories()    .OrderByDescending(p_f => p_f.LastWriteTime)    .ToList();現在,我可以將主目錄中的所有目錄加載到我的變量中,但我想添加如下內容: .Where(x => x.Name.Contains(/*A string found in my List above*/)編輯:在上面的語句中,參數 x 的類型為 DirectoryInfo。所以 x.Name 應該返回目錄的名稱。我不知道怎么搜索List.Any(s => string.Contains(s)) 當我還沒有設置字符串變量時。理想情況下,我只想搜索列表中的每個元素以進行匹配,而無需單獨設置一些臨時字符串變量。
查看完整描述

2 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

.Where(x=> listOfStrings.Any(c=> x.Contains(c))) 就是你要找的。


查看完整回答
反對 回復 2021-11-21
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

所以你有一個 的序列DirectoryInfos和一個 的序列strings。


您希望以DirectoryInfos這樣的方式過濾 的序列,以便只有那些DirectoryInfos具有Name以您的字符串序列中的至少一個字符串開頭的字符串。


所以,如果你的字符串的序列中包含“富”,比你的最終結果應該至少包含所有DirectoryInfos,其Name與啟動Foo。


IEnumerable<string> strings = ...

IEnumerable<DirectoryInfo> directoryInfos = ...


var result = directoryInfos

    .Where(directoryInfo => strings

           .Any(str => directoryInfo.Name.StartsWitch(str));

用一句話來說:


從所有 DirectoryInfo 的序列中,只保留那些 DirectoryInfo 的名稱,其中該 DirectoryInfo 的名稱以字符串序列中的任何一個字符串開頭。


查看完整回答
反對 回復 2021-11-21
  • 2 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號