عملگرهای تقسیم بندی Skip و SkipWhile – آموزش LINQ

تصویر linq-partitioning-operators-skip-skipwhile_11118 عملگرهای تقسیم بندی Skip و SkipWhile - آموزش LINQ

عملگرهای تقسیم بندی Skip و SkipWhile

در این بخش از آموزش LINQ، عملگرهای تقسیم بندی را بررسی خواهیم کرد. عملگرهای تقسیم بندی یک مجموعه را به دو بخش تقسیم می کنند و یکی از آن ها را باز می گردانند.

متد Skip

متد Skip تعداد مشخصی از عناصر را از ابتدای مجموعه skip کرده و باقی عناصر را باز میگرداند. برای درک بهتر به مثال زیر توجه کنید:

خروجی مثال:

متد SkipWhile

همانطور که از اسم متد نیز مشخص است، عناصر را تا زمانی که یک عنصر شرط مشخص شده را برآورده نکند skip می کند. اگر حتی اولین عنصر شرط مشخص شده را برآورده نکند، این متد 0 عنصر را skip می کند. یعنی همه عناصر را باز می گرداند. این متد دو overload دارد که اولی یک ورودی از نوع Func<TSource, bool> می گیرد و دومی هم یک ورودی از نوع Func<TSource, int, bool> می گیرد. همانطور که مشاهده می کنید overload دوم یک ورودی دیگر نیز دارد که همان اندیس عنصر جاری است.

برای درک بهتر به مثال زیر توجه کنید که در آن از شروع مجموعه تا اولین عنصری که طول آن 4 یا بیشتر از آن باشد عناصر skip می شوند.

خروجی مثال:

در مثال فوق متد SkipWhile دو عنصر اول را به دلیل این که شرط مشخص شده را بر آورده نمی کنند skip می کند اما عنصر سوم شرط را برآورده می کند پس عملیات skip کردن متوقف می شود و مابقی عناصر شامل خود عنصر سوم بازگشت داده می شوند. در مثال زیر به دلیل این که اولین عنصر شرط مشخص شده را برآورده نمی کند، کل عناصر بازگشت داده می شوند:

خروجی مثال:

در مثال زیر از overload دوم متد SkipWhile استفاده کردیم که اندیس مربوط به هر عنصر را در اختیار ما قرار می دهد.

خروجی مثال:

در مثال فوق شرط ما به این صورت است که گفتم تا زمانی که طول عنصر از مقدار اندیس خودش کمتر بود skip کن و چون عنصر 4 (شروع از صفر) طولش 4 است و شرط را برآورده می کند، عملیات متوقف شده و مابقی عناصر بازگشت داده می شوند.

توجه! متدهای فوق در سینتکس کوئری زبان سی شارپ پشتیبانی نمی شود.

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است