研究一种在应用程序中使用现有搜索引擎的新方法。这个想法是使用前缀进行搜索,而不是在搜索之前检查复选框中的首选值。像这样:“#12345678”,而搜索引擎将返回电话号码的结果。
问题在于此搜索包含三个值。我有两个枚举SearchCriteria和SearchType。第三个值是作为字符串值的实际前缀。
解决这个问题的最有效方法是什么?一直在寻找KeyValuePairs,但这似乎有点混乱。
我也尝试过在字典中保留不同的可能性。
prefixes = new Dictionary<string, KeyValuePair<SearchCriteria, SearchType>> {
{ values },
{ values }
}
有什么建议吗? :)
最佳答案
仅编写一个简单的值类型来保存此信息有什么问题?
public struct Search
{
public Search(SearchCriteria criteria, SearchType type, string prefix) { ... }
public readonly SearchCriteria Criteria;
public readonly SearchType Type;
public readonly String Prefix;
}
将您的各种搜索类型放入列表中,您可以使用linq来获取特定前缀的类型和条件...
Search[] searches = new []
{
new Search(SearchCriteria.PhoneNumber, SearchType.Match, "#"),
new Search(SearchCriteria.PostCode, SearchType.CaseInsensetive, "*")
}
string prefix = "#";
var searchCriteria = searches.Single(x => x.Prefix = prefix).Criteria;
var searchType = searches.Single(x => x.Prefix = prefix).Type;
关于c# - 需要帮助为三个值实现某种列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8239439/