Monday, February 25, 2013

Working with bunch of items in small chunks using yield

Sometimes, we found ourselves in situations we we have to deal with large bunch of items and the code we are dealing with is unable to work with single large list. We then break large list into small chunks and process these chunks one by one. I found myself in such situations couple of times recently. So I decided to write some code which is efficient and is reusable.

Yield is a very useful keyword when worked with a collections. I used this to write an  extension method which takes a collection  and size of subset, split the collection into even sized small subsets and then return each subset one by one.

Here is my code,

  1. public static IEnumerable<IEnumerable<T>>
  2.         Subset<T>(this IEnumerable<T> list, int size)
  3.         {
  4.             int subset = 0;
  5.             do
  6.             {
  7.                 yield return list
  8.                     .Skip((subset++)*size)
  9.                     .Take(size);
  10.             } while (subset * size < list.Count());
  11.         }

4 comments:

  1. شركة خطوه
    عجينه الصراصير
    تسمى عجينه الصراصيرباسم عجينة الحمض البوريك, وإليكم بعض الأشياء والأواني التي سوف نحتاجها في عمل تلك العجينة:
    • كوب من الماء الفاتر.
    • علبة بلاستيك تكون قديمة وغير مستعملة.
    • لبن بودرة.
    • حمض البوريك وهو ما يسمى البوريك أسيد.
    • مقدار من السكر.
    • مقدار من الدقيق.
    • قفاز من البلاستيك لليدين لعجن العجينة بأمان.
    • ملعقة من البلاستيك للتخلص منها بعد خلط العجينة.
    وعند خلط هذه المقادير لابد أن تكون جميعها متساوية مع بعضها البعض
    جميع خدمات شركة خطوة
    ترميم فلل
    صيانة فلل
    مكافحة حشرات
    http://www.khatwh.com

    ReplyDelete


  2. كشف تسربات المياه بالرياض
    من شركة عالم التميز بالرياض
    من الأهمية أن تقوم عميلنا الكريم بالتواصل مع شركة متخصصة في مجال الكشف عن تسرب المياه، فالكشف المبكر عن التسرب عامل مهم في نجاح العلاج وتوفيرًا للأموال والوقت، حتى وإن لم تكن تعاني من التسرب فالوقاية خيرً من العلاج من خلال اتباع الصيانة الدورية وهو ما تقدمه شركتنا حيث:
    • على حسب ما يرغب العميل به يتم الاتفاق على تحديد موعد ثابت للصيانة الدورية للكشف على تسرب المياه، وهذا يكشف أي نسبة تسرب في مراحلها الأولية ويسهل من المعالجة.
    • الكشف عن تسرب المياه يتم من خلال مهندسين على دراية وخبرة بمختلف أعمال الكشف ويستطيع العميل الاطلاع على الشهادات الخاصة بهم.
    • الكشف على تسرب المياه من خلال أجهزة حديثة لا تتطلب تكسير فهي تقوم بإصدار إشارات وذبذبات مع خبرة المهندس المختص يقوم بتحديد مكان التسرب بكل دقة ويسر.
    من خدمات شركة عالم التميز شركة كشف تسربات المياه بالرياض
    ترميم منازل بالرياض
    شركة ترميم منازل بالرياض
    شركة كشف تسربات المياه بالرياض
    عالم التميز
    http://www.alameltamyoz.com/

    ReplyDelete