我有一个二维数组,object[,] mData
我需要在不使用循环的情况下检索该对象数组中特定字符串(键)的索引(例如foreach
,for
)。
我之所以不想使用循环是因为我正在尝试优化使用循环的当前代码块,这会导致进程花费很长时间,因为它管理的数据太多。
有办法做到这一点吗?
CODE
`
object [,] mData = null;
string sKey = String.Empty;
for (int iIndex = 0; iIndex < mData.GetUpperBound(1); iIndex++)
{
if (mData[0, iIndex].Value == sKey);
{
return;
}
}
`
答案 0 :(得分:0)
你将需要一个循环来线性搜索一个元素。即使有一种方法你可以调用来获取索引(我也没想过),方法中仍然会有一个循环。
如果您担心性能问题,请尝试二进制搜索,如果数据已排序。
我正在尝试优化使用循环的当前代码块,这会导致进程花费很长时间,因为它管理的数据太多。
循环不会使代码运行速度明显变慢。问题的核心是你有太多的数据。如果你有那么多数据,那么预计会很慢。您可以做的是异步运行耗时的操作,以便UI不会冻结。