【问题标题】:C# Output Console - "System.Collection.Generic.Dictionary2+ValueCollection" Kinect v2C# 输出控制台-“System.Collection.Generic.Dictionary2+ValueCollection”Kinect v2
【发布时间】:2014-10-16 08:21:05
【问题描述】:

我是 C# 新手,我遇到了控制台输出问题。 我已经包括使用 System 和使用 System.IO 但是当我在控制台输出中打印一些东西时,我什么也看不到。 如果我写:

`Console.WriteLine("AAAAAAA");`

但我没有看到 AAAAAAAAAA...为什么?

我在 kinect FaceBasic 代码: 我想打印一个变量。 (FaceFrameResults 值)

变量是 FaceFrameResult.FacePointsInfraredSpace 属性。

Type: IReadOnlyDictionary<FacePointType, Point>

(http://msdn.microsoft.com/en-us/library/hh136548.aspx)

我想用这个代码打印这个:

Console.WriteLine("Key = {0}, Value = {1}",faceFrame.FaceFrameResult.FacePointsInColorSpace.Keys,faceFrame.FaceFrameResult.FacePointsInColorSpace.Values);

但是什么也没发生,也没有给我任何错误或警告。 如果我尝试使用消息框打印值

`MessageBox.Show(faceFrameResults[index].FacePointsInInfraredSpace.Values.ToString());`
`MessageBox.Show(faceFrameResults[index].FacePointsInInfraredSpace.Values);`

我得到这个:

System.Collection.Generic.Dictionary'2+ValueCollection[Microsoft.Kinect.Face.FacePointType.Microsoft.Kinect.PointF]

问题出在哪里? 提前感谢您的回复!

【问题讨论】:

  • 您不能一次打印出所有值和键,您需要遍历集合并一次打印出一个。
  • 但即使我只写值:“MessageBox.Show(faceFrame.FaceFrameResult.FacePointsInColorSpace.Values.ToString());”我也有同样的问题

标签: c# console output kinect-sdk


【解决方案1】:

您正在尝试打印出一个集合,您不能直接这样做,您需要遍历集合并逐个打印出每个项目。例如

foreach(var kvp in faceFrame.FaceFrameResult.FacePointsInColorSpace)
{
    Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}

【讨论】:

  • 成功了!谢谢!抱歉,我还没有使用 foreach 的实用性。 (我用消息框打印一条消息,因为使用 console.writeline 我什么都看不到。为什么?)问题是密钥是正确的,但我看到的值是:Microsoft.Kinect.PointF
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 2023-03-03
  • 1970-01-01
相关资源
最近更新 更多