2015-09-06 73 views
1

鉴于什么是BatchBlock相反块

电子邮件

的ID的列表我在做什么

随着BatchBlock组ID,并呼吁一个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; 
}); 

现在m Ÿ未来TransformBlock这样定义

TransformBlock<Email,EMail> filterStep; 

我搜索什么: 所以我需要一个块,让我得到一个集合作为源和返回n-元素作为结果。所以在这种情况下,一个块接收IEnumerable<Email>并返回Email foreach枚举中的条目。

所以我搜索的是BatchBlock的反面,但我找不到它。我可以忽略一些东西吗

回答

6

您需要的块是TransformManyBlock。您从该块的功能中返回一个IEnumerable<Email>,并自动将每个项目单独传送:

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

TransformManyBlock可能是你在找什么。它需要TInput并返回IEnumerable(1:n)。