[英]Parse jagged array in C#
我正在連接到使用Apache Axis和SOAP 1.2實現的外部Web服務。 Web服務返回一個鋸齒狀的對象數組,如下所示。 看看XML我有xsi:type =“soapenc:Array”
分別在C#2和C#3中解析這個數組的最干凈/最好的方法是什么? (我對C#2特別感興趣,所以C#3解決方案只會引起興趣。)
- obj object[] {object[][]} -[0] object {object[]} -[0] object {string} -[1] object {string} -[1] object {object[]} -[0] object {string} -[1] object {bool} -[2] object {object[]} -[0] object {string} -[1] object {object[]} -[0] object {object[][]} -[0] object[] -[0] object{string} -[1] object{string)
不確定什么是最佳實踐,但這是你可以做到的一種方式。 只需要測試對象是否是數組,如果是,則使用其可枚舉接口。 遞歸檢查每個數組項。
_array = new object[3];
_result = new StringBuilder();
//Populate array here
foreach (object item in _array)
{
ParseObject(item);
}
private void ParseObject(object value)
{
if (value.GetType().IsArray)
{
IEnumerable enumerable = value as IEnumerable;
foreach (object item in enumerable)
{
ParseObject(item);
}
}
else
{
_result.Append(value.ToString() + "\n");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.