var stringSet = new HashSet<string>(array);
if (stringSet.Contains(firstString)) ...
if (stringSet.Contains(secondString)) ...
if (stringSet.Contains(thirdString)) ...
if (stringSet.Contains(fourthString)) ...
Array.Sort(array);
int index = Array.BinarySearch(array, input);
// if (index < 0)
// does not exists, "items > ~index" are larger and "< ~index" are smaller
// otherwise, "items > index" are larger and "< index" are smaller.
List<string> list1 = new List<string>(){"1", "2"};
List<string> list2 = new List<string>(){"1", "2", "3"};
list2.Contains(list1) //will be True, but not vice versa.
//get date from a text file
List<string> ls = ReadFile();
foreach(string file in checklist)
{
//get file name
string filename = Path.GetFileName(file);
string TargetLocation = Path.Combine(TargetPath, filename);
//now compare single string to a list
//it give in true and false
if(ls.Contains(filename))
{
//do your task
//File.Copy(file, TargetLocation);
}
}
5条答案
按热度按时间wf82jlnq1#
您想要哪种比较?您想要知道指定的字串是否在数组中吗?
是否需要一个比较值数组(正、负、零)?
如果你要检查包含性(即第一个选项),并且你要对多个字符串进行检查,那么从数组中构建一个
HashSet<string>
可能会更好:hts6caw32#
你的意思是查看字符串是否在数组中?我不记得数组是否支持.Contains()方法,所以如果不支持,创建一个List< string >,通过AddRange()将数组添加到列表中,然后调用list.Contains({string to compare}).将返回一个布尔值,指示字符串是否在数组中。
5gfr0r5j3#
如果您对单个数组多次执行此操作,则应该对数组进行排序和二进制搜索:
否则就天真地检查整个阵列:
wa7juj8i4#
如果你要求查看一个列表是否是另一个列表的一部分,那么你可以使用Contains()。
比如说
也就是说,如果你想知道的不是部分匹配,而是完全匹配,你可以使用Except(),并检查余数。
30byixjq5#
//从源列表中获取数据List checklist =目录.GetFiles(源路径,“.",搜索选项.所有目录).Where(x =〉x.ToLower().EndsWith(“apk”)).ToList();