为什么这里的视觉工作室没有解决List?

时间:2013-02-16 20:25:14

标签: c# list compiler-errors

我担心我对C#有点新,所以我只是从他的文档中复制了一些代码。这是使用MailChimp Amazon Simple Email Service API

var api = new SesApi(yourMailChimpKey);
var result = api.SendEmail("Subject for test email",
     "<p>Body of HTML email</p>",
     "Body of plain text email",
     new EmailAddress("Sender name", "sender@nogginbox.co.uk"),
     new List { new EmailAddress("Recipient", "recipient@nogginbox.co.uk") },
     tags: new List { "test" } //Problems are on this line, and the one above it
);

问题在于,visual studio(我正在使用.net 4.5)似乎无法解决“new List {...}”所在的部分

我错过了一个图书馆,还是有一种新方法可以做到这一点我错过了?

3 个答案:

答案 0 :(得分:2)

问题是没有类型List。只有通用List<T>,这很可能是文档要使用的内容。 (非通用版本是ArrayList,但你真的不应该使用它。)

这意味着您需要在代码中指定列表的类型:

 new List<EmailAddress> { new EmailAddress(…) }
 new List<string> { "test" }

(假设您的代码文件顶部有using System.Collections.Generic;。)

假设API接受任何集合,更简单的解决方案可能是使用数组:

 new[] { new EmailAddress(…) }
 new[] { "test" }

答案 1 :(得分:1)

请注意,“使用System.Collections”与“使用System.Collections.Generics”之间存在差异。后者要求您指定列表类型,例如“new List<EmailAddress> { new EmailAddress ... }

答案 2 :(得分:0)

我认为你有几个问题。

首先,您需要在文件顶部添加using System.Collections.Generic;指令,如Moshe所述。

然后,尝试在列表声明后添加括号,如下例所示:

private void Form1_Load( object sender, EventArgs e )
{
    ListParam( new List<string>() { "Item 1", "Item 2" } );
}

private void ListParam( List<string> mylist )
{
    MessageBox.Show( "List count = " + mylist.Count );
}