امید آرام - توسعه دهنده نرم افزار
امید آرام - توسعه دهنده نرم افزار
خواندن ۱ دقیقه·۱۶ روز پیش

حل مشکل مرتب سازی حروف فارسی در کدنویسی

شاید براتون پیش اومده باشه که وقتی یه لیستی (مثلاً اسامی مشتریان) رو میخواین مرتب کنین، اونی که با حرف «پ» شروع شده اومده باشه اول لیست!

مشکل کجاست؟ ترتیب حروف فارسی در دیتابیس ها ممکنه درست نباشند و حروف «گچپژ» سر جای خودشون نباشند. البته که بیشتر دیتابیس ها راه اصولی خودشون رو دارن برای حل این مشکل؛ ولی ممکنه شما به تنظیمات دیتابیس دسترسی نداشته باشین یا به هر دلیلی تغییر اون تنظیمات براتون مقدور نباشه.

راه حل پیشنهادی من چیه؟ اینه که بیایم فقط توی Order By کوئری مون این حروف رو با یه عبارت دیگه جایگزین کنیم. در واقع هر حرفی رو که میخوایم بعد از یه حرف دیگه قرار بگیره، کافیه همون حرف رو بذاریم قبلش به علاوه یه کاراکتری که مطمئن بشیم میبرتش آخر لیست! یعنی مثلاً حرف «پ» رو میخوام بذارم بعد از «ب»؛ باید هرچی «پ» هست رو با عبارت «بîپ» جایگزین کنیم. اون کاراکتر وسطش هم تضمین میکنه که همه ی «پ»ها میرن بعد از آخرین «ب».

qList.OrderBy(x => x.Customer.Name .Replace('پ', 'بîپ') .Replace('ژ', 'زîژ') .Replace('چ', 'جîچ') .Replace('گ', 'کîگ') .Replace('ک', 'كîک'));

فقط اشتباه نشه اینجا توی نمایش (و احتمالاً محیطی که شما کد مینویسین) جای حروف رو جابجا نشون میده!

نتیجه:

مرتب سازی صحیح کلمات فارسی به روش ویژه
مرتب سازی صحیح کلمات فارسی به روش ویژه

امیدوارم مفید باشه براتون.


مرتب سازیdatabaseدیتابیسبرنامه نویسی
شاید از این پست‌ها خوشتان بیاید