بدست آوردن تعداد ارقام عدد!

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

راه حل اولیه ای که به ذهن هممون میرسه اینه که عدد رو به رشته تبدیل کنیم و بعد طولش رو برگردونیم، اما با این کد، میزان حافظه استفاده شده خیلی کمتر و سرعت اجرای اون بدلیل این که عملیات ریاضی توسط سی پی یو انجام میشه بشدت بالاتره.

من کد رو بصورت Extension Method در آوردم تا استفاده ازش راحت تر باشه:

void Main()
{
	Console.WriteLine((9999).GetLength().ToString());  //output: 4
}
 
public static class UsefulExtensions
{
	public static int GetLength(this int digit)
	{
		if(digit<0)
			digit=-digit;
		if(digit<10)
			return 1;
		if(digit<100)
			return 2;
		if(digit<1000)
			return 3;
		if(digit<10000)
			return 4;
		if(digit<100000)
			return 5;
		if(digit<1000000)
			return 6;
		if(digit<10000000)
			return 7;
		if(digit<100000000)
			return 8;
		if(digit<1000000000)
			return 9;
		//go on for larger numbers...
		return 0;
	}
}

بنظرم باید همواره سعی کنیم کدهامون رو با بازنگری از لحاظ زیبایی و سرعت بهبود ببخشیم.