عنوان:

‫اضافه شدن System.Linq.Shuffle به دات‌نت 10


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۱/۲۲ ۰۸:۲۹
آدرس: www.dntips.ir
این پیشنهاد، افزودن یک متد جدید System.Linq.Shuffle را به دات‌نت، مطرح می‌کند. در حال حاضر، «به هم زدن» یک IEnumerable of T نیازمند پیاده‌سازی‌های سفارشی یا راه‌حل‌های ناکارآمد است.

مشکل

  • هیچ API اختصاصی در LINQ برای «به هم زدن» وجود ندارد.
  • راه‌حل‌های رایج (به عنوان مثال، OrderBy(_ => Guid.NewGuid())) ناکارآمد هستند.
  • System.Random.Shuffle برای Span وجود دارد، اما برای IEnumerable خیر.

راه‌حل پیشنهادی

  • معرفی متدهای توسعه‌دهنده System.Linq.Shuffle:
    • public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source)
    • public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source, Random randomSource)



مشاهده مطلب اصلی