0
我必須按每個Key
中的某個字符串模式過濾ResourceSet
。爲此,我的函數必須接收參數a lambda表達式。我沒有經驗lambda,所以我不知道如何查詢ResourceSet中的每個DictionaryEntry。將lambda作爲參數傳遞給將要查詢ResourceSet的方法
這是我目前的方法,但看起來醜陋的老:
public IDictionary<string, string> FindStrings(string resourceName, params string[] pattern)
{
OpenResource(resourceName);
ResourceSet resourceSet = _currentResourseManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
Dictionary<string, string> result = new Dictionary<string, string>();
foreach (DictionaryEntry entry in resourceSet)
{
string resourceKey = entry.Key.ToString();
foreach (string p in pattern)
{
if (resourceKey.StartsWith(p))
{
string resource = entry.Value.ToString();
result.Add(resourceKey, resource);
}
}
}
return result;
}
如何我Func鍵參數會看?拉姆達將如何看待?
好吧,根據你的問題描述,這聽起來像你實際上不會改變你的方法 - 只是「if resourceKey.startsWith」;您需要提供一個接受字符串的Func,並返回一個布爾值(通過過濾器)。這裏是Func的文檔,如果它有幫助:http://msdn.microsoft.com/en-us/library/bb549151.aspx缺少任何東西,或者我誤解了你的需求? – Katana314