2015-09-06 46 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)。