c# - C# foreach 列表元素在列表中添加一个 AddField
问题描述
我正在尝试创建一个使用 discord.net 包发送嵌入消息的不和谐机器人。
这个 discord 包带来了一个名为 EmbedBuilder 的创建嵌入的功能,可以在这里看到:https ://docs.stillu.cc/api/Discord.EmbedBuilder.html
以下功能效果很好。代码如下所示:
public async Task ExampleAsync()
{
var embedElement = new EmbedBuilder()
.WithTitle("Example Name")
.AddField("Working", "Example")
.Build();
var chnl = BotClient.GetChannel(123) as IMessageChannel;
await chnl.SendMessageAsync(embed: embedElement);
}
但是,假设我有一个包含用户的列表,我想为列表中AddField("Working", "Example")
的每个用户添加一个,我该怎么做?
因为像下面这样的事情显然不起作用,我找不到任何关于此的信息。
public List<UserObject> Users;
public async Task ExampleAsync()
{
var embedElement = new EmbedBuilder()
.WithTitle("Example Name")
foreach(UserObject user in Users)
{
.AddField("Working", "Example")
}
.Build();
var chnl = BotClient.GetChannel(123) as IMessageChannel;
await chnl.SendMessageAsync(embed: embedElement);
}
我将不胜感激任何帮助和建议。
解决方案
尝试这个:
public List<UserObject> Users;
public async Task ExampleAsync()
{
var embedElement = new EmbedBuilder().WithTitle("Example Name");
foreach(UserObject user in Users)
{
embedElement.AddField("Working", "Example");
}
embedElement.Build();
var chnl = BotClient.GetChannel(123) as IMessageChannel;
await chnl.SendMessageAsync(embed: embedElement);
}
推荐阅读
- javascript - 承诺等待后取消 lodash debounce
- kubernetes-helm - 添加到 ACR 的 Helm 图表的索引 URL 是什么?
- c# - 在通用 DbSet 查询中使用 Distinct
- ios - 点击图像时显示工具栏 SWIFT
- sql - Bigquery:在 ST_GEOGPOINT 数组中使用 ST_CLUSTERDBSCAN
- mongodb - 图像文件未保存在 MongoDB 中
- firebase-realtime-database - Firebase 数据库 - 使用 REST 请求发送有效负载
- mysql - MYSQL 中是否有与 ORACLE SYS_CONTEXT('USERENV', 'OS_USER') 等价的东西?
- python - 在 Python 中使用 Paramiko 从 top 命令收集输出
- jmeter - Jmeter 采样器 'v1/pages/...' 产生 'java.lang.OutOfMemoryError: Java heap space' 错误