【问题标题】:Dynamically storing matrix values in C#在 C# 中动态存储矩阵值
【发布时间】:2012-12-20 21:10:24
【问题描述】:

我正在尝试在 c#.net 中构建一个应用程序

这里我有两个相同大小的一维数组 例如,我有如下结构的矩阵 M 和 N:

       M[0] M[1] M[2] M[3] M[4]
 N[0]   
 N[1]
 N[2]
 N[3]
 N[4]

在这里,我为它们分配了 M[0].... & N[0]...... 的值,这样我就得到了一个矩阵,如下所示:

    5     6     4     8
4

8

7

2

注意:我使这个值动态生成。到这一步我已经成功了。

但我喜欢以这种格式将值存储在 2x2 矩阵中的另一个数组(可能是锯齿状数组或其他东西)中:

      A[0]  A[1]
 B[0]  5     4       (this is the values of M[0] and N[0])

 B[1]  6     4       (this is the values of M[1] and N[0])

 ..............
 B[4]  5     8       (this is the values of M[0] and N[1])

当 N[0] 的第一行完成后,它必须继续下一行。 我只需要一些关于如何在 C# 中实现这一点??

【问题讨论】:

  • @Boomer 谢谢,但我已经准备好阅读所有这些文章,但不知道如何动态存储
  • wtf?你想做吗?不清楚。
  • 这是我对您问题的理解。做 2 个一维数组的笛卡尔积。那正确吗?即如果数组 1 具有元素 1、2、3,而数组 2 具有元素 4、5、6 - 您需要一个二维数组,其值为 {{1,4}, {1,5}, {1,6}, {2,4}, {2,5}, {2,6}, {3,4}, {3,5}, {3,6}}。如果是,请查看 LINQ 和笛卡尔积相关问题。当然,你可以在循环内写一个循环来实现。
  • @shahkalpesh 是的,这就是确切的功能

标签: c# arrays multidimensional-array jagged-arrays


【解决方案1】:

对于动态存储,您应该了解 2d 和 3d 的基础知识

参考这里

二维数组:dotnetperls.com/2d-array

多维数组:msdn.microsoft.com/en-us/library/2yd9wwz4(v=vs.71).aspx

【讨论】:

    【解决方案2】:

    您不能对数组进行后期赋值。我建议你使用List<List<int>>,这是一个例子:

    List<List<int>> val = new List<List<int>>();
    List<int> M = new List<int>() { 1, 2, 3, 4, 5 };
    List<int> N = new List<int>() { 5, 4, 3, 2, 1 };
    
    foreach (int m in M)
    {
        foreach (int n in N)
        {
            val.Add(new List<int> { m, n });
        }
    }
    

    【讨论】:

      【解决方案3】:

      stackoverflow.com/questions/594853/dynamic-array-in-c-sharp 上面的结帐线程。或查看以下来源。

      msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx

      【讨论】:

      • msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx
      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 2023-03-03
      • 2011-03-29
      相关资源
      最近更新 更多