如何在Visual Studio 2017调试模式下观看2-D矩阵的列?

时间:2019-04-20 02:30:46

标签: debugging visual-studio-2017

伙计们。

我知道我们可以通过将数组添加到监视窗口中来以VS调试模式监视数组,但是如何查看矩阵的一列(2D数组)?假设我们有一个矩阵A [3] [3],而我只想在调试模式下查看第三列中的所有元素。我试图在监视窗口中键入A [] [2]或A [:] [2]或A [,] [2],但是这3个都不可识别。

请帮助!

谢谢!

2 个答案:

答案 0 :(得分:0)

这不是真正的矩阵,而只是数组数组,所以我认为没有内置方法可以实现这一点。

但是使用linq,您可以尝试执行以下操作:

A.select(a => a[2]).toArray()

要在监视窗口中使用linq,您需要在代码顶部添加以下行:

using System.Linq;

答案 1 :(得分:0)

  

至少暂时无法在调试模式下获取列值   不直接。

watch window旨在在调试模式下监视变量和表达式。 它无法识别编译器无法识别的变量。

例如:假设我们有一个矩阵A [3] [3],编译器可以识别A变量,A[2]变量,但不能识别类似A[][2]的变量(这是无效的变量)。相应地,监视窗口不会识别它。

如果您的场景中有一个较大的2-D矩阵,并且由于某些原因确实需要列值。您可以创建一维数组,迭代2-D数组,然后将第3列的值放入其中。然后将一维数组变量添加到监视窗口。

我们确实有很多变通方法来在调试模式下获取列值,但是要直接在调试模式下查看数组的列,恐怕答案是否定的。 vs2017现在不支持此选项。

另外:不确定使用哪种语言,但是如果使用.net(C#,VB),则A [3] [3]是A jagged array,而不是two-dimensional array