如何在Visual Studio 2017调试模式下观看二维矩阵的列?

问题描述 投票:1回答:2

家伙。

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

请帮忙!

谢谢!

debugging visual-studio-2017
2个回答
0
投票

这不是一个真正的矩阵,而只是数组的数组,所以我认为没有构建方法来获得它。

但是使用linq你可以尝试这样的事情:

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

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

using System.Linq;

0
投票

我们现在无法在调试模式下获取列值,至少不能直接获取。

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

例如:假设我们有一个矩阵A [3] [3],编译器可以识别A变量,A[2]变量,但不能用于像A[][2]这样的东西(它是一个无效的变量)。相应地,观察窗口不会识别它。

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

我们确实有许多变通方法可以在调试模式下获取列值,但是直接在调试模式下观察数组列,我担心答案是否定的。现在vs2017不支持此选项。

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

© www.soinside.com 2019 - 2024. All rights reserved.