【发布时间】:2014-03-21 17:12:43
【问题描述】:
在我的字符串数组中,我想查找一些文本并将第一次出现的行号作为 int 返回。
这是有效的;
public static int LookUpLineNumber(String[] item, string TextToLookUp)
{
int m;
for (m = 0; m < item.Count(); m++)
{
if (item[m].Contains(TextToLookUp))
{
break;
}
}
return m++;
}
但是,我想知道是否有任何方法可以优化它的效率和长度?
速度对比: (使用大小为 10.000 的字符串数组运行 10.000 次的平均时间)
-
使用我的代码:
- 1,259 毫秒
-
使用 Habib 的代码:
Array.FindIndex<string>(item, r => r.Contains(TextToLookUp));- 0,906ms
【问题讨论】:
-
String[] item中有多少项目?过早的优化是不好的优化。我也看不出这种方法会慢的任何原因。 -
如何在
string[]中找到行号? -
你可以使用 Array.BinarySearch
-
每个字符串都是一行吗?
-
您需要在任何范围内匹配还是完全匹配?
标签: c# arrays line-numbers