c# - 如何搜索多维数组?

标签 c# search multidimensional-array find

在 C# 中,

Array.Find<T>(arrayName, value);

搜索一维数组。对于多维数组(例如 myArray[,,])有没有办法做到这一点?

最佳答案

使用 Excel 和 VSTO,我一直在处理多维数组。多维数组没有像 Array.Find() 这样的内置函数。

您基本上有两个选择:创建您自己的辅助方法并在那里实现通用搜索模式,或者生成与多维数组内容相关的领域对象列表。我个人倾向于选择后者。

如果您选择编写辅助方法,它可能看起来(非常粗略地)像这样:

// you could easily modify this code to handle 3D arrays, etc.
public static class ArrayHelper
{
    public static object FindInDimensions(this object[,] target, 
      object searchTerm)
    {
        object result = null;
        var rowLowerLimit = target.GetLowerBound(0);
        var rowUpperLimit = target.GetUpperBound(0);

        var colLowerLimit = target.GetLowerBound(1);
        var colUpperLimit = target.GetUpperBound(1);

        for (int row = rowLowerLimit; row < rowUpperLimit; row++)
        {
            for (int col = colLowerLimit; col < colUpperLimit; col++)
            {
                // you could do the search here...
            }
        }

        return result;
    }
}

您可以在应用程序代码的其他部分引用这样的静态扩展:

object[,] myArray = GetMyArray(); // gets an array[,]
myArray.FindInDimensions(someObject);

关于c# - 如何搜索多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6084940/

相关文章:

javascript - 显示存储在 MongoDb 中的图像

search - 检查服务器状态时Elasticsearch 503错误

php - 为什么我的 PHP/MYSQL 请求加载最多需要 5 分钟?

c - 这是一个有效的 Tic Tac Toe 获胜条件检查器功能吗?

c# - MVC asp.net 从网络文件夹加载图像

c# - MVVM 和 View/ViewModel 层次结构

javascript - 修改后无法搜索多选

Javascript多维数组语法错误

c++ - 将多维数组分配给另一个

c# - 如何在 DataGridViewComboBoxColumn 中设置 SelectedIndex?