【问题标题】:How to get a specific index in multidimensional Array C#如何在多维数组 C# 中获取特定索引
【发布时间】:2016-11-28 13:18:38
【问题描述】:

我有一个二维数组,object[,] mData

我需要检索该对象数组中特定字符串(键)的索引不使用循环(例如foreachfor)。

我不想使用循环的原因是因为我正在尝试优化使用循环的当前代码块,这会导致进程需要很长时间,因为它管理的数据太多。

有没有办法做到这一点?

代码

`

object [,] mData = null;  
string sKey = String.Empty;  

for (int iIndex = 0; iIndex < mData.GetUpperBound(1); iIndex++)  
{  
    if (mData[0, iIndex].Value == sKey);  
    {
       return;  
    }  
}

`

【问题讨论】:

  • 也许显示你的循环,因为它也许我们可以确定如何加速它
  • 你可以用字典
  • 如果您需要特定元素,请使用array2d[0][0](第一个元素)。否则,您必须对 mudane 数组使用循环。
  • 您可能会重新考虑在数组顶部创建索引。可以进行二分搜索的已排序的东西。
  • 嗨@BugFinder,我已经修改了我的问题以包含代码。我希望这会有所帮助。

标签: c# arrays multidimensional-array


【解决方案1】:

需要一个循环来线性搜索元素。即使有一个方法可以调用来获取索引(我不认为它没有),该方法内部仍然会有一个循环。

如果您担心性能,请在数据已排序的情况下尝试二进制搜索。

我正在尝试优化使用循环的当前代码块,该循环导致进程需要很长时间,因为它管理的数据太多。

循环不一定会使您的代码运行速度明显变慢。你的问题的核心是你有太多的数据。如果你有这么多数据,那么速度会很慢。您可以做的是异步运行耗时的操作,以免 UI 冻结。

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多