2017-02-18 16 views
0

прямо сейчас, я использую эту команду для инициализации списка объектов, и он отлично работает.Как использовать конструктор для инициализации списка объектов, содержащих массив

public class RelatedBlog 
{ 
    public string trekid { get; set; } 
    public string imagepath { get; set; } 

    public RelatedBlog(string trekid, string imagepath) 
    { 
     this.trekid = trekid; 
     this.imagepath = imagepath;   
    } 
} 

trek.relatedblog = new List<RelatedBlog>    
{ 
    new RelatedBlog("trekid", "../Images/image.jpg"),   
}; 

Однако, в последнее время я решил, что вместо одной строки в качестве первого свойства, я хочу, чтобы иметь массив из нескольких строк - с размером до 4 (но он может быть также фиксированной и я могу войти нули во время инициализации). Это код, я использую, но он не работает, он ожидает, что некоторые более «(» когда я называю конструктор.

public class RelatedBlog 
{ 
    public string[] trekid { get; set; } 
    public string imagepath { get; set; } 

    public RelatedBlog(string[] trekid, string imagepath) 
    { 
     this.trekid = trekid; 
     this.imagepath = imagepath;   
    } 
} 

trek.relatedblog = new List<RelatedBlog>    
{ 
    new RelatedBlog({"string1", "string2"}, "../Images/image.jpg"),   
}; 

Может кто-нибудь посоветовать мне, где я допустил ошибку и как инициализировать этот список должным образом. большое спасибо

+0

насчет 'новый список ()'? –

ответ

2

Использование:

trek.relatedblog = new List<RelatedBlog> 
{ 
    new RelatedBlog(new[] {"string1", "string2"}, "../Images/image.jpg") 
}; 

вы используете implicitly typed array, компилятор может обнаружить внутри массива типа, но вы должны сообщить ему, что вы передаете массив:

var arr1 = new[] { "hello", "world" }; 

равно

var arr2 = new string [] { "hello", "world" };