如何使用不同的数据类型将项目添加到列表中

时间:2012-07-30 17:32:32

标签: c# list

我正在开发一个项目,该项目将检索要发送的电子邮件列表。我在一个单独的类中有代码来创建电子邮件所需的项目:

public class EmailStructure
{
    public MailMessage Email { get; set; }
    public int MailId { get; set; }
    public int MailTypeId { get; set; }
}

我有代码返回数据并循环遍历数据集中的每条记录以创建新的MailMessage,我的问题是,当我尝试将MailMessage添加到我的列表中时,我得到了一个错误说:

  

参数类型System.New.Mail.MailMessage不能分配给参数类型'EmailStructure'。

显然我在这里做错了但我无法弄清问题是什么。我的代码如下:

class SendMails
{
    public List<EmailStructure> emailMessages = new List<EmailStructure>();
    public List<GetOutboundEmailsResult> emailResults = new List<GetOutboundEmailsResult>();

    public Extract()
    {
        // get data from DB
    }

    public void Transform()
    {
        if(emailResults.Any())
        {
            foreach (GetOutboundEmailsResult item in emailResults)
            {
                var emailBody = GetEmailBody(item);

                // create email this returns the type as MailMessage
                var email = emailHandler.ComposeNewEmail(
                    System.Configuration.ConfigurationManager.AppSettings["Mailbox"],
                    item.MailboxFrom,
                    string.Empty,
                    string.Empty,
                    emailBody.ToString(),
                    true,
                    "test");

                // add email message to List<MailMessage>
                // need to add MailMessage, MailId, MailTypeId 
                emailMessages.Add(email); // error is appearing here
            }
        }
    }

    public Route()
    {
        // send the emailMessages
        foreach(var row in emailMessages)
        {
            // need to use the MailId, MailTypeId here from the list
            emailHandler.SendNewEmail(row.Email)
        }
    }
}

如何将MailMessage,Maild和MailTypeId添加到我的列表中?我需要所有这些项目,所以我可以稍后在我的过程中发送电子邮件。

2 个答案:

答案 0 :(得分:4)

您尝试将MailMessage直接添加到emailMessages,后者持有EmailStructure秒。尝试类似:

emailMessages.Add(new EmailStructure()
{
    Email = email,
    MailId = 42,
    MailTypeId = 108
});

用适当的数字。

答案 1 :(得分:0)

您正尝试将类型为MailMessage的对象添加到类型List<EmailStructure>的列表中。这就是问题所在。