Как добавить данные списка в данные списка нескольких подклассов? - PullRequest
0 голосов
/ 01 октября 2018

Я хочу добавить данные списка из подкласса (списка) в подкласс (список) для отправленного формата JSON.

Класс

public class MainProcess
{ 
  public Pay _pay { get; set; }
}

public class Pay
{
   public Credit _credit { get; set; }
}

public class Credit 
{
  public int payid { get; set; }
  public List<CreditDetails> details { get; set; }
}

public class CreditDetails
{
  public decimal total { get; set; }
  public List<CreditSubDetails> details { get; set; }
}

public class CreditSubDetails //i want add data to here.
{
  public string runid { get; set; }
  public decimal amount { get; set; }
}

Код C #

private async Task<.....> CreateInfo(Information r)
{
    .....
    ..... //Process Data
    .....

    //Add Data                 
    List<CreditSubDetails> detailsCredit = new List<CreditSubDetails>();
    foreach (var res in resPayDetail.Data.ToList()) //Set data to list
    {
       detailsCredit.Add(new CreditSubDetails()
        {
           runid = res.runid,
           amount = res.totalamount
        });
    }

    var subCreditCardDetails = r._pay._credit.details.SelectMany(x => x.details).ToList();

    //i want add list data to sub class list (class CreditSubDetails)
    //r._pay._credit.details.details = detailsCredit *but not work.

    .....
    .....
    //sent all data (format json)
    response = await client.PostAsJsonAsync("", r._pay._credit);
    .....
    .....
}

Помогите мне, пожалуйста.Заранее спасибо.

1 Ответ

0 голосов
/ 02 октября 2018

Я предполагаю, что вы хотите добавить данные списка detailsCredit в структуру Information r в пути r._pay._credit.details.details. Единственная проблема, которую я вижу, это то, что вы не можете получить доступ к свойству элемента через списокнапрямую с тем же типом элемента ...

вы не можете получить доступ к details свойству CreditDetails класса из List<CreditDetails> ... вам нужно перебрать каждый элемент и установить detailsдля каждого.

должно быть что-то вроде этого:

r._pay._credit.details.ToList().ForEach(d => {
    d.details = detailsCredit;
});
...