2017-05-24 46 views
0

我們的高級開發人員不在辦公室,我需要一些幫助來爲同一個節點創建兩個數組。下面是我需要XML格式的一個例子;C#爲同一類型創建兩個數組

<RequestServiceNumberOfQualifiers> 
    <numberOfQualifiers> 
     <nbrOfQualifiers> 
      <Value>2</Value> 
      <Qualifier>Person</Qualifier> 
     </nbrOfQualifiers> 
    </numberOfQualifiers> 
    <numberOfQualifiers> 
     <nbrOfQualifiers> 
      <Value>3</Value> 
      <Qualifier>User1</Qualifier> 
     </nbrOfQualifiers> 
     <nbrOfQualifiers> 
      <Value>3</Value> 
      <Qualifier>User2</Qualifier> 
     </nbrOfQualifiers> 
    </numberOfQualifiers> 
</RequestServiceNumberOfQualifiers> 

但是我得到的是這個;

<RequestServiceNumberOfQualifiers> 
    <numberOfQualifiers> 
     <nbrOfQualifiers> 
      <Value>2</Value> 
      <Qualifier>Person</Qualifier> 
     </nbrOfQualifiers> 
     <nbrOfQualifiers> 
      <Value>3</Value> 
      <Qualifier>User1</Qualifier> 
     </nbrOfQualifiers> 
     <nbrOfQualifiers> 
      <Value>3</Value> 
      <Qualifier>User2</Qualifier> 
     </nbrOfQualifiers> 
    </numberOfQualifiers> 
</RequestServiceNumberOfQualifiers> 

下面是我的代碼;

public static RequestServiceNumberOfQualifiers ServicesRequest(string person, List<string> users) 
{ 
    RequestServiceNumberOfQualifiers services = new RequestServiceNumberOfQualifiers(); 
    List<RequestServiceNumberOfQualifiersNbrOfQualifiers> qualifier = new List<RequestServiceNumberOfQualifiersNbrOfQualifiers>(); 
    qualifier.Add(new RequestServiceNumberOfQualifiersNbrOfQualifiers { Qualifier = 2, Value = person });   

    foreach (var userNo in users) 
    { 
     qualifier.Add(new RequestServiceNumberOfQualifiersNbrOfQualifiers { Qualifier = 3, Value = userNo });      
    }     

    services.numberOfQualifiers = qualifier.ToArray(); 

    return services; 
} 

任何幫助,將不勝感激。

感謝戴夫

+0

是由'Value'分組? – vzwick

+1

您發佈的代碼示例中沒有直接的XML生成。顯然它隱藏在'RequestService *'類的某個地方,所以不可能在沒有看到這些源的情況下幫助你。我懷疑「等到你的高級開發人員會回來問他」將是最合適的答案。 –

+0

vzwick是分組是價值 – Dave

回答

0

好像你的對象/模型應該是這樣的:

public class nbrOfQualifiers 
{ 
    public int Value { get; set; } 
    public string Qualifier { get; set; } 
} 

public class RequestServiceNumberOfQualifiers 
{ 
    public List<List<nbrOfQualifiers>> numberOfQualifiers { get; set; } // note that I have 
                     // List<List<T>> 
} 

這裏是你的對象

var foo = new RequestServiceNumberOfQualifiers() 
{ 
    numberOfQualifiers = new List<List<nbrOfQualifiers>>() 
    { 
     new List<nbrOfQualifiers>() 
     { 
      new nbrOfQualifiers(){ Value = 2, Qualifier = "Person"}, 
     }, 
     new List<nbrOfQualifiers>() 
     { 
      new nbrOfQualifiers(){ Value = 3, Qualifier = "User1"}, 
      new nbrOfQualifiers(){ Value = 4, Qualifier = "User2"}, 
     } 
    } 
}; 

如果序列上述對象轉換爲XML,它應該給你你的預期結果。

關鍵是你需要爲你的numberOfQualifiers使用List<List<T>>

使用嵌套列表,像這樣
0

試...

public static RequestServiceNumberOfQualifiers ServicesRequest(string person, List<string> users) 
{ 
    var services = new RequestServiceNumberOfQualifiers(); 
    var qualifier = new List<RequestServiceNumberOfQualifiersNbrOfQualifiers>(); 
    qualifier.Add(new RequestServiceNumberOfQualifiersNbrOfQualifiers { Qualifier = 2, Value = person }); 
    // numberOfQualifiers should be of Type List<List<RequestServiceNumberOfQualifiersNbrOfQualifiers>> 
    services.numberOfQualifiers.Add(qualifier.ToArray()); 

    qualifier = new List<RequestServiceNumberOfQualifiersNbrOfQualifiers>(); 
    foreach (var userNo in users) 
    { 
     qualifier.Add(new RequestServiceNumberOfQualifiersNbrOfQualifiers { Qualifier = 3, Value = userNo }); 
    }     

    services.numberOfQualifiers.Add(qualifier.ToArray()); 

    return services; 
} 
相關問題