Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字典键和值作为字符串C分配给变量#_C#_Asp.net Mvc - Fatal编程技术网

C# 如何将字典键和值作为字符串C分配给变量#

C# 如何将字典键和值作为字符串C分配给变量#,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试发送电子邮件,并将字典键和值作为字符串分配给变量 public ActionResult SendContactUs(ContactUsModel model) { SendEmail sendemail = new SendEmail(); string toEmail = ConfigurationManager.AppSettings["ContactUsEmail"]; var keys = new Dictionar

我正在尝试发送电子邮件,并将字典键和值作为字符串分配给变量

public ActionResult SendContactUs(ContactUsModel model)
    {
        SendEmail sendemail = new SendEmail();

        string toEmail = ConfigurationManager.AppSettings["ContactUsEmail"];

        var keys = new Dictionary<string, string>() {
            { "Firstname", model.Firstname },
            { "Lastname", model.Lastname },
            { "Email", model.Email },
            { "Orgnization", model.Orgnization },
            { "Message", model.Message }
        };
   //here i want to pass keys  to body as string 
        string body = keys ;




        sendemail.Send(new EmailModel()
        {
            Body = body,
            To = new List<string>() { toEmail },

       });

        return Json(new { val = true }, JsonRequestBehavior.AllowGet);
    }

可以使用Linq构造字符串:

string body = string.Join(Environment.NewLine, keys.Select(x=>$"{x.Key}: {x.Value}"));

可以使用Linq构造字符串:

string body = string.Join(Environment.NewLine, keys.Select(x=>$"{x.Key}: {x.Value}"));

如果你唯一使用字典的地方是电子邮件文本,那么不要使用字典——只需构建一个字符串?那为什么还要使用字典呢?根据需要使用String/StringBuilder。如果你唯一使用字典的地方是电子邮件文本,那么不要使用字典-只需构建字符串?为什么还要使用字典呢?根据需要使用字符串/字符串生成器。