为什么我需要列表后的半冒号

Cro*_*uch 1 c# asp.net-mvc-3

我正在通过msdn http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-1上的教程工作,我来到这个部分,它问我创建一个列表,在列表关闭后,它在括号外面有一个半冒号,就像这样

public ActionResult Index()
{
    var genres = new List<Genre>
    {
        new Genre { Name = "Disco"},
        new Genre { Name = "Jazz"},
        new Genre { Name = "Rock"}
    };
    return View(genres);
 }
Run Code Online (Sandbox Code Playgroud)

我是c#的新手,想知道为什么我必须这样做,因为我正在创建笔记来为自己构建知识库.我已经看过以前在其他语言中使用过它我确定但是我从来没有质疑它但是它有点困扰我一段时间

Jer*_*vel 8

您正在查看列表初始化程序.

而不是做

var genres = new List<Genre>();
genres.add(new Genre { Name = "Disco" });
genres.add(new Genre { Name = "Jazz" });
genres.add(new Genre { Name = "Rock" });
Run Code Online (Sandbox Code Playgroud)

您可以使用已包含的精确流派来初始化列表.与添加NameGenre对象中的方式非常相似.

列表初始化后的分号是一个简单的语句结束.不同类型后面的冒号用于分隔初始化程序中的条目.