你好,我想寫一個文件名搜索工具,允許使用多個詞搜索。 目前我只能搜索一個單詞,但我想用更多的單詞組合來過濾我的結果。如何創建一個動態的if條件
這裏是到目前爲止我的代碼:
public List<String> startYareSearch(string query, string source)
{
List<String> SearchResultList = new List<String>();
List<String> FileNameList = getFileNames(source);
foreach (string fileName in FileNameList)
{
if (fileName.IndexOf(query, StringComparison.OrdinalIgnoreCase) >= 0)
{
SearchResultList.Add(fileName);
continue;
}
}
return SearchResultList;
}
Ť認爲我需要從陣列接收的查詢的功能,並生成一個動態如果條件。
有關示例:
String[] queries= new string[] { "Tobias", ".txt"};
String fileName= "blablaTobiasbla.txt";
if (fileName.IndexOf("Tobias", StringComparison.OrdinalIgnoreCase) >= 0 && fileName.IndexOf(".txt", StringComparison.OrdinalIgnoreCase) >= 0)
{
SearchResultList.Add(fileName);
continue;
}
是可能的,如果條件動態地創建一個?你知道更好的解決方案嗎?
在第一個示例中將foreach放在外部foreach中出現什麼問題。 Linq也是一個替代品。 – PaulF
我想你需要codeDome:https://msdn.microsoft.com/en-us/library/y2k85ax6(v=vs.110).aspx –
是的,你可以。創建一個表達式作爲Func,然後在你的linq調用中傳入其中的一個(Find,Where,First等)。它會像func =()=>一些表達式; FileNameList.Find(func); – Jegan