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

Discord.Net:如何在带文本格式的嵌入消息(Embed)中实现换行?

如何在Discord嵌入消息(Embed)中将内容拆分为多行显示?

我一直在寻找该问题的解决方案,但始终未能找到答案。我想要实现的效果如下:目前我发送嵌入消息(Embed)回复时,内容显示为例如‘football,baseball’这样的单行形式;而我期望的是将内容分为两行显示,即第一行显示‘football’,第二行显示‘baseball’。请问有没有人知道如何通过代码实现这一效果?提前感谢各位的帮助。

当前使用的代码:

var value = ""; 
int price = 0; 
foreach (var Item in content) { 
    value += Item.Item1 + ": " + Item.Item2.ToString(); 
    price += Item.Item2; 
} 
return new EmbedFieldBuilder() { 
    Name = category + " - " + price, 
    Value = value 
};

嘿,这个问题很好解决!Discord的嵌入消息支持用**换行符(\n)**来实现文本换行,你现在的代码只是把所有内容拼接成了一个没有分隔的字符串,所以才会显示在同一行。

这里给你两种修改方案:

方案1:直接添加换行符

在每次拼接内容后加上\n,最后可以去掉末尾多余的换行:

var value = ""; 
int price = 0; 
foreach (var Item in content) { 
    // 每个条目后添加换行符,实现多行显示
    value += Item.Item1 + ": " + Item.Item2.ToString() + "\n"; 
    price += Item.Item2; 
} 
// 移除最后多余的换行,避免字段末尾出现空行
value = value.TrimEnd('\n');
return new EmbedFieldBuilder() { 
    Name = category + " - " + price, 
    Value = value 
};

方案2:使用StringBuilder更高效(推荐)

如果你的条目数量较多,用StringBuilder做字符串拼接性能会更好,它还自带AppendLine方法直接添加换行:

var valueBuilder = new StringBuilder();
int price = 0;
foreach (var Item in content)
{
    // AppendLine会自动在末尾添加换行符
    valueBuilder.AppendLine($"{Item.Item1}: {Item.Item2}");
    price += Item.Item2;
}
// 同样移除末尾多余的换行
return new EmbedFieldBuilder()
{
    Name = $"{category} - {price}",
    Value = valueBuilder.ToString().TrimEnd('\n')
};

这样修改后,每个条目就会单独显示在一行啦~ 如果还有问题可以随时问!


内容的提问来源于stack exchange,提问作者Juan Ming Lao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:57:32