2015-04-25 3 views
0

Я хочу, чтобы массив содержал strings, floats и int s, к которым можно получить доступ с помощью индексного ключа.C# Динамический массив

У меня есть пример в Lua, как вы могли бы сделать, но я не знаю, как вы делаете это в C#

bookArray = []; 
bookArray[1] = 
{ 
    Name = "Book 1"; 
    Price = 50; 
    WPP = 374; 
    Pages = 42; 
} 

ответ

2

Вы можете создать class и использовать List<MyClass>

class MyClass 
{ 
    public string Name {get;set;} 
    public double Price {get;set;} 
    public int Pages {get;set;} 
} 

Вот список:

List<MyClass> values = new List<MyClass>(); 

Добавление элемента

values.Add(new MyClass(){Name = "Book 1", Pages = 42, Price=50.0}); 

Вставить в определенном индексе:

values.Insert(0,new MyClass(){Name = "Book 2", Pages = 432, Price=10.0}); 

Получить при удельном индексе:

MyClass theClass = values[1]; 
+1

В дополнение к ответу @Hossein ... При использовании массивов в C# есть улов, вам нужно знать размер массива, когда вы его сначала создаете. Поэтому, если это будет 10 элементов, вам нужно будет использовать 'Foo [] foo = new Foo [10]'. Вот почему вам лучше использовать «Список », так как вам не нужно беспокоиться об этой вещи –

+0

... или если это ключевой ключ (не последовательный), то словарь будет хорошим выбором – jt000

0

Если вы хорошо с вашим внутренним типа быть неизменен, вы можете сделать это:

var ar = new[] { 
       new { Name = "Book 1", Price = 50, WPP = 374, Pages = 42 }, 
       new { Name = "Book 2", Price = 55, WPP = 220, Pages = 129 } 
      }; 

Это примерно как можно ближе к определению Lua

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