[英]Efficient way to search List of String Arrays in C#
我有这样的结构,
String[] variable1= new String["ABC", "FSS" , "FSFS", "GDGDDS"];
String[] variable2= new String["SA", "GS" , "QE", "HF"];
static List<String[]> allList = new List<String[]>();;
allList .Add(variable1);
allList .Add(variable2);
当提供一个String
,我想搜索allList
并提供结果(如果找到了该数组)。
对以有效方式进行存档有帮助吗?
两种提供的解决方案都是线性运行的,如果您有很多单词并且进行很多查询,这将太慢。
您可以使用字典。 字典在内部使用哈希表,它会快很多。
要将所有字符串放入字典中,可以执行以下操作:
Dictionary<String, String[]> dict = new Dictionary<String, String[]>();
foreach(String[] arr in allList)
foreach(String str in arr)
dict[str] = arr;
然后,您可以轻松地搜索它:
String s = "ABC";
if(dict.ContainsKey(s))
// result is dict[s]
else
// String is not in any array
希望能帮助到你!
您也可以尝试
var output=allList.Where(x=>(string.Join(",", x)+",").IndexOf(input+",")!=-1)
.FirstOrDefault();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.