BatchBlock的对面块是什么

What is the opposite block of BatchBlock

给定:

电子邮件 ID 列表

我在做什么:

使用 BatchBlock 组 ID 并为每个块调用一个 Transformblock,简化的 transformblock 如下所示:

var readBatch = new TransformBlock<List<int>, IEnumerable<Email>>(idList =>
{
    List<Email> mails = new List<Email>();
    foreach(var id in idList)
    {
        mails.Add(new Email(id));
    }
    return mails;
});

现在我的下一个 TransformBlock 是这样定义的

TransformBlock<Email,EMail> filterStep;

我搜索的内容: 所以我需要一个块,它允许我获得一个集合作为源和 returns N-Elements 作为结果。所以在这种情况下,一个块为枚举中的每个条目接收 IEnumerable<Email> 和 returns Email

所以我搜索的是 BatchBlock 的反义词,但我找不到它。我是不是忽略了什么?

TransformManyBlock 可能就是您要找的。它需要 TInput 和 returns IEnumerable (1:n).

您需要的区块是TransformManyBlock。你 return 来自方块功能的 IEnumerable<Email> 它会自动单独传输每个项目:

var transformManyBlock = new TransformManyBlock<IEnumerable<Email>, Email>(emails => emails);