‫۱۰ سال و ۱۱ ماه قبل، دوشنبه ۲۷ آبان ۱۳۹۲، ساعت ۰۱:۱۴
اگر کارت‌های ملی که شمارهٔ شناسنامهٔ ۹ و ۸ رقمی دارند را دیده باشید متوجه می‌شوید که صفرهای اول جز شمارهٔ ملی است. به هر حال اگر به هر دلیل صفرهای اول را به گونه‌ای پاک‌کرده‌اید می‌توان کد را اینگونه نوشت که کدهای ۹ یا ۸ رفمی را پس از افزوده‌شدن صفر مانند کدهای ۱۰ رقمی صحت‌سنجی کند:
        public static bool IsValidIranianNationalCode(string input)
        {
            input = input.PadLeft(10, '0');

            if (!Regex.IsMatch(input, @"^\d{10}$"))
                return false;

            var check = Convert.ToInt32(input.Substring(9, 1));
            var sum = Enumerable.Range(0, 9)
                .Select(x => Convert.ToInt32(input.Substring(x, 1)) * (10 - x))
                .Sum() % 11;

            return sum < 2 && check == sum || sum >= 2 && check + sum == 11;
        }
راستی اعداد یکسان نامعتبر نیستhttp://www.fardanews.com/fa/news/127747
برای زبان‌های دیگر این کد https://gist.github.com/ebraminio/5292017
‫۱۱ سال و ۶ ماه قبل، سه‌شنبه ۱۳ فروردین ۱۳۹۲، ساعت ۲۲:۰۱
سلام. من کدتون رو بهینه و بازنویسی کردم. خوشحال می‌شم تست کنید ببینید رفتار کد عوض نشده باشه:
public static bool IsValidIranianNationalCode(string input)
{
    // input has 10 digits that all of them are not equal
    if (!System.Text.RegularExpressions.Regex.IsMatch(input, @"^(?!(\d)\1{9})\d{10}$"))
        return false;

    var check = Convert.ToInt32(input.Substring(9, 1));
    var sum = Enumerable.Range(0, 9)
        .Select(x => Convert.ToInt32(input.Substring(x, 1)) * (10 - x))
        .Sum() % 11;

    return sum < 2 && check == sum || sum >= 2 && check + sum == 11;
}
در regex از negative lookahead استفاده شده که بررسی‌شه هر ده عدد یکی نباشن، از Substring استفاده‌شده که با توجه به پیاده‌سازی کلاس String به نظر من خیلی بهنیه هست، پرانتزها هم حذف شدند چون بدون پرانتز با توجه به اولویت عملگرها همان معنی را می‌دهد.
‫۱۲ سال و ۲ ماه قبل، پنجشنبه ۱۹ مرداد ۱۳۹۱، ساعت ۱۷:۳۴
به Error-Prone آن در خود مقاله هم اشاره شده. SimpleStateMachine که ما قصد پیاده‌سازی داشته‌ایم تقریباً به این حالت است:
که می‌توان بین حرکت‌ها یک Action قرار داد. (که هدف ما بیشتر همین هست)
به طور کلی می‌گویند که State-Machine درست‌کردن با این قابلیت چندان درست نیست، فقط امکان‌پذیر هست.
‫۱۲ سال و ۲ ماه قبل، سه‌شنبه ۱۷ مرداد ۱۳۹۱، ساعت ۲۳:۵۹
من شخصاً اطمینان ندارم که همهٔ زبان‌های CLI از همین Collectionها استفاده کنند و البته این نمودار با Syntax سی‌شارپ بود به همین دلیل سی‌شارپ نوشته بودم با این حال آن را به Collectionهای CLI تبدیل کردم.