You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#逐字字符串字面量中添加DateTime生成唯一邮箱?

解决逐字字符串中生成唯一邮箱的问题

给你三种实用的实现方式,根据你的需求选就行:

方法1:字符串替换(快速适配现有代码)

先生成指定格式的时间戳,再替换原字符串里的固定邮箱占位:

public class Payload
{
    public string GetFirstPayload()
    {
        // 生成YYYYMMDDTHHMMSS格式的时间戳
        string timestamp = DateTime.Now.ToString("yyyyMMddTHHmmss");
        // 把原字符串里的邮箱改成占位符,方便替换
        string basePayload = @"{
  ""channel"": ""XYZ"",
  ""Email"": ""abc{0}@abc.com""
}";
        // 替换占位符生成唯一Payload
        return string.Format(basePayload, timestamp);
    }
}

方法2:逐字插值字符串(更简洁)

C# 6及以上支持$@组合,既能保留JSON的格式,又能直接嵌入时间戳表达式:

public class Payload
{
    public string GetFirstPayload()
    {
        string timestamp = DateTime.Now.ToString("yyyyMMddTHHmmss");
        // 注意逐字字符串里的{要写成{{转义,避免被当成插值标记
        return $@"{{
  ""channel"": ""XYZ"",
  ""Email"": ""abc{timestamp}@abc.com""
}}";
    }
}

方法3:序列化实体类(推荐,易维护)

手动拼接JSON容易出错,尤其是Payload复杂时,定义实体类再序列化更靠谱:

// 先定义和JSON对应的实体类
public class RequestPayload
{
    public string channel { get; set; }
    public string Email { get; set; }
}

public class Payload
{
    public string GetFirstPayload()
    {
        string timestamp = DateTime.Now.ToString("yyyyMMddTHHmmss");
        var payloadObj = new RequestPayload
        {
            channel = "XYZ",
            Email = $"abc{timestamp}@abc.com"
        };
        // 用Newtonsoft.Json序列化(RestSharp也自带序列化工具,按需选择)
        return Newtonsoft.Json.JsonConvert.SerializeObject(payloadObj, Newtonsoft.Json.Formatting.Indented);
    }
}

内容的提问来源于stack exchange,提问作者Sahil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:24:30