如何从构造函数中的数组参数填充数组类成员

时间:2017-04-11 15:41:18

标签: c#

我创建了两个类,第一个名为X1 X2 X3 X4 X5 1 1 1 NA NA NA NA 1 1 1 ,第二个名为Author。 在Book类中,我有以下属性:

Book

以及以下构造函数:

private string s_titre;
 private string[] name_author;
 private double d_Price;

我不知道如何从public Book(string title, Author[] author, double price) { this.s_titre = titre; for (int i = 0; i <auteur.Length; i++) { authoritarianism[i] = auteur[i].name; } this.d_price = price; } 填写author字段。 我尝试了上面的代码,但它没有用。

2 个答案:

答案 0 :(得分:0)

也许您先忘了创建阵列?

public Book(string title, Author[] author, double price)
{
    this.s_titre = titre;
    // create an array of the same length as author
    authoritarianism = new string[author.Length];
    for (int i = 0; i <auteur.Length; i++)
    {
         authoritarianism[i] = auteur[i].name;
    }
    this.d_price = price;
}

答案 1 :(得分:0)

代码不起作用的原因是类中的数组尚未初始化。您可以使用LINQ:

初始化和复制数组(实际上,任何IEnumerable<T>
public Book(string title, IEnumerable<Author> author, double price) {
    s_titre = titre;
    d_price = price;
    authoritarianism = author.ToArray();
}
  

修改:我想将auther[i].name存储在name_author[i]

向链中添加Select的调用:

author_names = author.Select(a => a.Name).ToArray()