簡體   English   中英

在C#中解析鋸齒狀數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM