【问题标题】:Dealing with complex objects处理复杂对象
【发布时间】:2017-07-29 07:43:49
【问题描述】:

我对 C# 编程比较陌生,我第一次接触对象。我正在使用的方法是返回一个对象,我将它设置为我自己的对象,

object target = searchResponse.Result.Parameters.Values;

从这里我试图从对象中提取数据,但它似乎是一个“复杂”的对象(只是想出了这个术语,它可能是错误的,但我不知道正确的术语)。根据 Visual Studio 本地菜单,对象的值为count = 2。但是,对象的“内部”是我想要的数据,如下所示:

如何获取这些数据?

【问题讨论】:

  • 不要使用object - 这是错误的做法。如果您不确定类型是什么,请使用var 并让编译器弄清楚。该图像显示target 是Dictionary,您可以在文档中轻松查找如何使用它们:msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx
  • searchResponse的类型是什么?

标签: c#


【解决方案1】:

正如@UnholySheep 建议的那样,如果您事先不知道DataType,请尽可能使用var。

但是例如,由于您已将数据存储在 target 中,并且在图片中它的类型为 Dictionary,因此您可以进行转换

Dictionary<string, object> dict = target as Dictionary<string, object>;

现在您可以从 dict 访问您的数据

编辑 1:

我假设您可能想知道如何从 Dictionary 访问数据,所以这里有一个简短的 sn-p:

Dictionary<int, string> myDictionary = new Dictionary<int, string>();
//here _int_ will be the key, _string_ will be your data
myDictionary.Add(1, "abc");  //1 is key, abc is data
myDictionary.Add(2, "def");
myDictionary.Add(3, "ghk");

string myData = myDictionary[2]; //pass the value to be fetched
//myData = def

【讨论】:

  • 为什么不投票的人在投票时不发表评论作为理由!??
猜你喜欢
  • 2014-08-22
  • 2019-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
相关资源
最近更新 更多