2017-02-18 10 views
0

gerade benutze ich diesen Befehl, um eine Liste von Objekten zu initialisieren, und es funktioniert gut.Wie man Konstruktor verwendet, um Liste der Objekte zu initialisieren, die das Array enthalten

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"),   
}; 

jedoch in letzter Zeit habe ich anstelle von einzelnen String als erste Eigenschaft, entschieden, dass ich ein Array von mehreren Strings haben wollen - mit der Größe bis zu 4 (aber es kann auch festgelegt werden, und ich kann eingeben Nullen während der Initialisierung). Dies ist der Code, den ich verwende, aber es funktioniert nicht, erwartet er etwas mehr „(“ wenn ich den Konstruktor aufrufen.

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"),   
}; 

Kann mir jemand raten, wo ich einen Fehler machen und wie diese Liste richtig initialisiert werden. vielen dank

+0

Was ist 'neue Liste ()'? –

Antwort

2

Gebrauch:

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

Sie verwenden implicitly typed array, der Compiler den Typ innerhalb Array erkennen kann, aber man muss es informieren, dass Sie ein Array sind vorbei:

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

gleich

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