家伙。
我知道我们可以通过将数组添加到监视窗口来观察VS调试模式中的数组,但是我们如何查看矩阵的列(2D数组)?假设我们有一个矩阵A [3] [3],我只想在调试模式下看到第三列中的所有元素。我试图在观察窗口中键入A [] [2]或A [:] [2]或A [,] [2],但这3个都不可识别。
请帮忙!
谢谢!
这不是一个真正的矩阵,而只是数组的数组,所以我认为没有构建方法来获得它。
但是使用linq
你可以尝试这样的事情:
A.select(a => a[2]).toArray()
要在监视窗口中使用linq
,您需要在代码顶部添加以下行:
using System.Linq;
我们现在无法在调试模式下获取列值,至少不能直接获取。
watch window用于在调试模式下监视变量和表达式。它无法识别编译器无法识别的变量。
例如:假设我们有一个矩阵A [3] [3],编译器可以识别A
变量,A[2]
变量,但不能用于像A[][2]
这样的东西(它是一个无效的变量)。相应地,观察窗口不会识别它。
如果您的场景中有一个大的二维矩阵,并且由于某种原因确实需要列值。您可以创建一维数组,迭代二维数组并将第三列值放入其中。然后将一维数组变量添加到监视窗口。
我们确实有许多变通方法可以在调试模式下获取列值,但是直接在调试模式下观察数组列,我担心答案是否定的。现在vs2017不支持此选项。
另外:不确定你使用的是什么语言,但如果你使用.net(C#,VB),A [3] [3]是A jagged array,而不是two-dimensional array。