我的要求是獲取客戶名單,然後爲每個客戶創建PDF並作爲附件發送到電子郵件(但條件是每個電子郵件只發送10個附件)。所以做到這一點我正在使用Linq查詢數據庫,並使用WCF應用程序將客戶列表放入列表中。但在我的情況下,我可能會收到任何數量的客戶,那麼如何將整個列表細分爲每個電子郵件10個附件?請在此建議我。謝謝。如何將列表拆分爲C#中的部分?
回答
我的代碼將幫助您。閱讀上IEnumerable,並檢查了方法,如以下:
int alreadyProcessesCount = 0;
while (myList.Any())
{
var emailList = myList.Skip(alreadyProcessesCount).Take(10);
// code to attach and send here
alreadyProcessesCount += 10;
}
採取返回序列中的開始的連續元素指定數量。
跳過跳過序列中指定數量的元素,然後返回其餘元素。
您沒有從myList中取走任何東西,所以myList.Any()將始終爲真,導致無限循環, – Yohannes
這不是代碼的全部範圍,只是讓事情變得更糟。是的,必須有某種類型的迭代器才能在列表中移動,但正如你所看到的,他沒有提供任何上面的代碼。 – thewisegod
感謝它的工作 – barsan
有時前,我創造了這個功能,分批分割Enumerbales處理它們
使用的部件拆分列表/枚舉有10項是這樣的
foreach(var batch in mySource.Batch(10))
{
//.. Code to handle a part
}
源代碼:
public static IEnumerable<IEnumerable<TSource>> Batch<TSource>(this IEnumerable<TSource> source, int size)
{
TSource[] bucket = null;
int count = 0;
foreach (TSource item in source)
{
if (bucket == null)
{
bucket = new TSource[size];
}
bucket[count++] = item;
if (count != size)
{
continue;
}
yield return bucket;
bucket = null;
count = 0;
}
if (bucket != null && count > 0)
{
yield return bucket.Take(count);
}
}
- 1. 如何將文本文件拆分爲C中的部分?
- 2. 將列表拆分爲兩部分,其中第一部分的長度爲
- 3. IOS:如何將UIImage拆分爲部分
- 4. 將SSIS中的列拆分爲數字部分和列值的其餘部分
- 5. 拆分列表分爲
- 6. 如何使用列名稱將csv拆分爲多個部分?
- 7. 如何將SQLite列中的分隔值拆分爲多列
- 8. 將C中的字符串拆分爲不同的部分
- 9. 如何在大小小於1MB的部分中拆分列表
- 10. 將字符串拆分爲C++中的部分
- 11. 拆分列表分爲單獨的列
- 12. 如何將Slick 3.1(Scala)中的數據拆分爲4部分
- 13. 將列表拆分爲多列
- 14. 將動態列表拆分爲三列
- 15. 將列拆分爲多列
- 16. 如何在Python中將圖像拆分爲多個部分
- 17. 如何在Swift中將字符串拆分爲兩個部分:
- 18. 如何在批量中將URL拆分爲其組成部分?
- 19. 如何將列表(矩陣)拆分爲其他列表?
- 20. 將屏幕拆分爲兩部分
- 21. 將頁面拆分爲2個部分
- 22. 將矢量拆分爲兩部分
- 23. 將字符串拆分爲兩部分
- 24. 將文本拆分爲部分
- 25. 將Spark數據幀拆分爲部分
- 26. 將Android應用拆分爲兩部分
- 27. 將元組拆分爲n個部分
- 28. 重塑Python中的附加列表 - 將列表拆分爲列
- 29. 將文件拆分爲C++
- 30. 如何將字符串拆分爲以「 - 」開頭的部分?
沒有看到任何代碼很難提供一個非常可靠的答案,但是因爲您使用的是Linq,所以還有一些擴展可以通過數字迭代數量。看看下面的答案。 – thewisegod