-1
我有一個公共函數,它返回一個dynamic
對象。這樣的dynamic
對象實際上是MyObj
類型,其中MyObj
是包含該函數的類的私有類。訪問C中動態對象中的元素#
public class MyClass
{
private class MyElement
{
public string myString{ get; set; }
}
private class MyObj
{
public List<MyElement> data { get; set; }
}
public dynamic myMethod()
{
List<MyElement> myList = (some complex code here).ToList();
var myObj = new MyObj{ data = myList };
return myObj;
}
}
現在我需要從把這種功能的類外面是這樣的:
var c = new MyClass();
var stuff = c.myMethod();
並遍歷輸出對象的元素,但你可以看到stuff
物體的形狀爲dynamic
(看看函數的返回類型),所以我不知道類型(是私有的)。我如何探索數組?
什麼陣列?你有一個列表,但不是一個數組。也許你可以使用'stuff.data [0] .mystring'?那是你在找什麼?爲什麼你使用動態輸入?如果你遵循正常的.NET命名約定,它也會極大地幫助你的問題的可讀性。請注意,您只能通過從代碼中可以看到「MyObj」類型的地方進行動態輸入來訪問「MyObj」的成員。爲什麼MyObj是私人的? (爲什麼你不只是返回'List'? –
這個類型可以轉換成一個JObject或字典並循環屬性鍵。 –
@JonSkeet我重新正確地重申了這個問題並糾正了錯字和語法錯誤 –