C# 在电子邮件列表中显示项目

C# 在电子邮件列表中显示项目,c#,asp.net,email,C#,Asp.net,Email,我已经编写了一个匹配算法,无论出于何种原因,没有匹配的学生都存储在全局变量的列表中。我想把这个列表作为电子邮件发送给管理员。我需要帮助阅读列表中的项目并将其添加到电子邮件中 全局变量为: public static List<string> V_result_rest_student = new List<string>(); public static List<string> result_rest_student {

我已经编写了一个匹配算法,无论出于何种原因,没有匹配的学生都存储在全局变量的列表中。我想把这个列表作为电子邮件发送给管理员。我需要帮助阅读列表中的项目并将其添加到电子邮件中

全局变量为:

public static List<string> V_result_rest_student = new List<string>();
        public static List<string> result_rest_student
        {
            get { return V_result_rest_student; }
            set { V_result_rest_student = value; }
        }
发送电子邮件的程序:

public void SendStatusEMail(List<string> list, User User, EmailType type)
        {

            MailAddress from = new MailAddress(config.mailSender, "Matching-Team");
            MailAddress to = new MailAddress("matching@gmail.com");

            MailMessage mail = new MailMessage(from, to);

            mail.IsBodyHtml = true;

            mail.Bcc.Add(from);

            SmtpClient client = new SmtpClient();
            client.Port = port;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;

            string header = string.Format(config.header);
            string footer = config.footer;

            if (list == null)
            {
                return;
            }

            string msg = "";

            switch (type)
            {
                case EmailType.Unsorted_Student:
                    foreach (var item in list)
                    {
                        msg = item;

                    }
                    break;

                case EmailType.Finished_List:
                    msg = config.Finished_List;
                    break;

                default:
                    break;
            }

            msg = string.Format(msg); 

            mail.Subject = string.Format(config.mailSubject, "List of Unsorted Students");
            mail.Body = header + msg + footer;


            try
            {
                client.Send(mail);
            }
            catch (Exception ex)
            {
                Console.WriteLine("<Error> EMail Couldn't be sent.",
                            ex.ToString());
            }

        }
public void SendStatusEMail(列表、用户、EmailType)
{
MailAddress from=新邮件地址(config.mailssender,“匹配团队”);
MailAddress to=新邮件地址(“matching@gmail.com");
MailMessage mail=新的MailMessage(从,到);
mail.IsBodyHtml=true;
mail.Bcc.Add(发件人);
SmtpClient=新的SmtpClient();
client.Port=Port;
client.DeliveryMethod=SmtpDeliveryMethod.Network;
client.UseDefaultCredentials=false;
字符串头=string.Format(config.header);
string footer=config.footer;
if(list==null)
{
返回;
}
字符串msg=“”;
开关(类型)
{
案例EmailType.Unsorted_学生:
foreach(列表中的变量项)
{
msg=项目;
}
打破
案例EmailType.Finished\u列表:
msg=config.Finished\u列表;
打破
违约:
打破
}
msg=string.Format(msg);
mail.Subject=string.Format(config.mailSubject,“未排序学生列表”);
mail.Body=页眉+消息+页脚;
尝试
{
客户端。发送(邮件);
}
捕获(例外情况除外)
{
Console.WriteLine(“无法发送电子邮件。”,
例如ToString());
}
}

我需要未排序学生的用户ID以电子邮件形式发送给管理员。我正在使用C#(.Net framework)

我认为您只需要添加一个变量,将列表转换为字符串。试试这个:

var result = String.Join("</BR>", General.result_rest_student);
var result=String.Join(“
”,General.result\u rest\u student);

如果您希望所有内容都在一条线上,“

”可以替换为“,”。

此时,您几乎无法获得学生的ID。如果名称是唯一的(不太合理),则可以查询数据库以从名称中获取ID。真正的解决方案是构建一个列表,而不是一个列表(或者至少是一个只存储名称和ID的新类的列表)。那么你有每个学生的身份证,你能用代码给我看一下吗?你是如何准备你实际使用的名单的?在这一点上,你需要准备一个不同类型的列表。请显示该代码。这是否应该在foreach循环中代替msg?您不应该这样做。try var result=String.Join(“
”,General.result\u rest\u student);然后是消息的正文msg=result.ToString();
var result = String.Join("</BR>", General.result_rest_student);