gpt4 book ai didi

c# - 如何将项目添加到具有不同数据类型的列表

转载 作者:行者123 更新时间:2023-11-30 21:05:22 25 4
gpt4 key购买 nike

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

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

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

Argument type System.New.Mail.MailMessage is not assignable to parameter type '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 添加到我的列表中?我需要所有这些项目,以便我可以在稍后的流程中以一种方法发送电子邮件。

最佳答案

您正在尝试将 MailMessage 直接添加到 emailMessages,而后者包含 EmailStructure。尝试类似的东西:

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

用任何合适的数字。

关于c# - 如何将项目添加到具有不同数据类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11726565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com