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