Arrays 如何从Unity中的Firestore数组中获取内容?

Arrays 如何从Unity中的Firestore数组中获取内容?,arrays,unity3d,google-cloud-firestore,Arrays,Unity3d,Google Cloud Firestore,我正在努力理解Unity/C#中的Firestore阵列 DocumentSnapshot snap=task.Result; IDictionary dict=snap.ToDictionary(); 对象questData=dict[“questData”]; 如何说results=dict[“questData”][0]。结果 调试器将questData显示为对象我不知道该如何说: object[]questData=dict[“questData”] 它作为一个对象从Firesto

我正在努力理解Unity/C#中的Firestore阵列

DocumentSnapshot snap=task.Result;
IDictionary dict=snap.ToDictionary();
对象questData=dict[“questData”];
如何说results=dict[“questData”][0]。结果

调试器将questData显示为对象我不知道该如何说: object[]questData=dict[“questData”]


它作为一个对象从Firestore中传入,但它实际上是一个数组。

我看不出它的数组或列表是否是可数的

但您可以使用它来取消对象的装箱:

var x =dict["quesData"] as object[] or List<object>
var x=dict[“quesData”]作为对象[]或列表
并在类型之后应用相同的模式

如果收集(ict[“questData”])是字典,您可以应用:

foreach (KeyValuePair<string, object> pair in dict["questData"])
{
    Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
}
foreach(dict[“questData”]中的KeyValuePair对)
{
WriteLine(“{0}:{1}”,pair.Key,pair.Value);
}
为了找到其他的键,我不知道键是否是字符串,所以对象应该做这项工作,以防


因此,您也可以编写:
var x=dict[“quesData”]作为字典

在questdata的类型(请参见spy窗口)中调试时编写的内容,或者让您拥有object的结构。如果您将:var x=dict[“questdata”]作为object[]键入,您会得到什么谢谢法语不起作用我得到错误:KeyNotFoundException:给定的键在字典中不存在。System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item(TKey)(at:0)当然,集合是字典,所以您必须根据集合类型调整代码。所以我知道ist nosql数据库,但您没有捕获的最小数据结构?
foreach (KeyValuePair<string, object> pair in dict["questData"])
{
    Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
}