2015-04-25 69 views
0

我想要一个数组包含strings,floatsint 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]'。这就是为什么你最好使用'List ',因为你不需要担心这种事 –

+0

...或者如果它是索引键(非顺序),那么Dictionary 也是一个不错的选择 – 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定义