Мое требование состоит в том, чтобы получить список клиентов, а затем создать 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;
}
Take возвращает указанное число подряд идущих элементов с начала последовательности.
Пропустить обход определенного количества элементов в последовательности и затем вернуть остальные элементы.
вы ничего не убираете из 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. Как разбить вложенный список на две части?
- 2. Разбить список на части - сбой преобразования VB
- 3. Рекурсивно разбить список на две части
- 4. Как разбить список на части и не потерять последние записи
- 5. Как разбить текстовый файл на части в C?
- 6. F #: Рекурсивные функции: Разбить список на две равные части
- 7. Попытка разбить строку на части
- 8. Разбить строку на отдельные части
- 9. Как разбить файл на части и загрузить
- 10. Как разбить некоторые части линии?
- 11. Как разбить две строки и нарезать нарезанные части на C#?
- 12. Javascript разбить строку на части
- 13. Как разбить список на сегменты
- 14. Как разбить список на единицы?
- 15. Как разбить строку на две части
- 16. Как разбить эту строку на две части?
- 17. PHP: Как разбить массив на 2 части?
- 18. Как разбить сложную строку на части?
- 19. VBA Как разбить целое на отдельные части
- 20. IOS: как разбить UIImage на части
- 21. Как разбить предложение на две части
- 22. Как разбить строку на части, определенные скобками
- 23. Как разбить проблему на более понятные части?
- 24. Как разбить строку на три части?
- 25. Как разбить строку на две части
- 26. Как разбить регулярное выражение на части?
- 27. Как разбить построенный jstree на 2 части
- 28. Как разбить число на разные части Java?
- 29. Как разбить словарь на «n» части
- 30. Как разбить текстовую строку на части?
Не видя какого-либо кода, сложно дать очень надежный ответ, но поскольку вы используете Linq, есть расширения для итерации по количеству по количеству. Взгляните на мой ответ ниже. – thewisegod