我有一个包含很多路径的列表。我有我要核对这份清单,看看是否有任何路径有使用此路径的具体路径,即:在C中搜索数组中的字符串的开始#
f.StartsWith(r.FILENAME) && f != r.FILENAME
什么是这样做的最快的方法?
编辑:从下面的答案功能齐全:
static bool ContainsFragment(string[] paths, string fragment)
{
// paths **must** be pre-sorted via Array.Sort(paths);
if (paths.Length == 0) return false;
int index = Array.BinarySearch(paths, fragment);
if (index >= 0 && index+1 < paths.Length)
{ //we found it
if (paths[index + 1].StartsWith(fragment) &&
paths[index + 1].EndsWith(".manifest"))
{
return true;
}
}
return false;
}
(注意我更新了您的意见) – 2009-02-12 12:45:53