2015-07-23 1 views
0

Я пытаюсь создать список счетов-фактур, но у каждого счета-фактуры есть список LineItems, Могу ли я спросить, как добавить вложенные объекты ,Создайте объект с вложенными объектами C# - как добавить строки для счета-фактуры

Я боролся, чтобы выяснить, кто добавить LineItems к фактуре, как показано здесь:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace myNS 
{ 

    class Invoice 
    { 
     public int id; 
     public int value; 
     List<LineItem> li = new List<LineItem>(); 
    } 
    class LineItem 
    { 
     public int LineItemID; 
     public int LineItemValue; 
     public int LineItemQty; 
    } 

    class Class1 
    { 
     static void Main(string[] args) 
     { 
      var items = new[] 
      { 
      new Invoice{id=1, value =30}, //how to insert LineItems here 
      new Invoice{id=2, value =10}, 
      new Invoice{id=3, value =20} 
      }; 
     } 

    } 
} 
+1

ваш 'list' должен быть публичным – Jonesopolis

ответ

2

Как уже указано - ваш список должен быть общедоступным.

public class Invoice 
{ 
    public int id; 
    public int value; 
    public List<LineItem> li = new List<LineItem>(); //<-- here 
} 

Это позволит вам получить к нему доступ.

Чтобы добавить товар к списку - у вас есть два выбора.

1) создать новый список на инициализации и поместить в него элемент.

static void Main(string[] args) 
{ 
    var lineitem = new LineItem(); 
    var items = new[] 
    { 
    new Invoice{id=1, value =30, li = new List<LineItem>{lineitem}}, //<-- like this 
    new Invoice{id=2, value =10}, 
    new Invoice{id=3, value =20} 
    }; 
} 

2) добавить элемент к существующему списку - после initialication:

static void Main(string[] args) 
{ 
    var lineitem = new LineItem(); 
    var items = new[] 
    { 
    new Invoice{id=1, value =30}, 
    new Invoice{id=2, value =10}, 
    new Invoice{id=3, value =20} 
    }; 

    items[0].li.Add(lineItem);//<-- like this 
} 
1

Попробуйте это ... извещение Ли должен быть публичный список

class Invoice 
{ 
    public int id; 
    public int value; 
    public List<LineItem> li = new List<LineItem>(); 
} 
class LineItem 
{ 
    public int LineItemID; 
    public int LineItemValue; 
    public int LineItemQty; 
} 

class Class1 
{ 
    static void Main(string[] args) 
    { 
     var items = new[] 
     { 
     new Invoice{id=1, value =30, li = new List<LineItem>{new LineItem{LineItemID = 1, LineItemValue =2,LineItemQty = 3}}}, //how to insert LineItems here 
     }; 
    } 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^