C# : Collections
Top 37 C# Example Pages...

["wrkr. ,B(B+ST~~}T~~YF97F+CCZBCS}T~~}T~~","Integer Digit Count."," This method finds the number of digits in an integer. It avoids the ToString method. It is possible to determine the number of digits by using an implicit cast and several if-conditions. This approach avoids all allocations. ","Int ","int","Example."," We demonstrate two methods that both return the same result when passed integer arguments. The first method, GetIntegerDigitCountString, converts the integer to a string and then accesses the Length property on the string. ","String Length ","string-length","The second method,"," GetIntegerDigitCount, uses mathematical logic and conditionals to determine how many digits and characters the integer would have if it were converted to a string. Both methods count the sign as a digit (character). ","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","Based on:"," .NET 4.6\n\n","C# program that counts number of digits in integers","\n\nusing System;\n\nclass Program\n{\n static void Main()\n {","\n // Write number of digits in the integers using two methods.\n ","Console.WriteLine(GetIntegerDigitCountString(int.MinValue));\n Console.WriteLine(GetIntegerDigitCount(int.MinValue));\n Console.WriteLine(GetIntegerDigitCountString(int.MaxValue));\n Console.WriteLine(GetIntegerDigitCount(int.MaxValue));\n Console.WriteLine(GetIntegerDigitCountString(0));\n Console.WriteLine(GetIntegerDigitCount(0));\n Console.WriteLine(GetIntegerDigitCountString(9999));\n Console.WriteLine(GetIntegerDigitCount(9999));\n Console.WriteLine(GetIntegerDigitCountString(-9999));\n Console.WriteLine(GetIntegerDigitCount(-9999));\n }\n\n static int ","GetIntegerDigitCountString","(int value)\n {\n return value.ToString().Length;\n }\n\n static int ","GetIntegerDigitCount","(int valueInt)\n {\n double value = valueInt;\n int sign = 0;\n if (value < 0)\n {\n value = -value;\n sign = 1;\n }\n if (value <= 9)\n {\n return sign + 1;\n }\n if (value <= 99)\n {\n return sign + 2;\n }\n if (value <= 999)\n {\n return sign + 3;\n }\n if (value <= 9999)\n {\n return sign + 4;\n }\n if (value <= 99999)\n {\n return sign + 5;\n }\n if (value <= 999999)\n {\n return sign + 6;\n }\n if (value <= 9999999)\n {\n return sign + 7;\n }\n if (value <= 99999999)\n {\n return sign + 8;\n }\n if (value <= 999999999)\n {\n return sign + 9;\n }\n return sign + 10;\n }\n}\n\n","Output","\n\n11\n11\n10\n10\n1\n1\n4\n4\n5\n5","Here we explain"," how the GetIntegerDigitCount method is internally implemented. First, the int parameter is widened to a double value. This allows us to convert it to a positive value without losing information. ","And: ","We test it against zero, and if it is negative, we set the sign variable to 1 and make it positive.","Then: ","We test against the constants (9, 99, 999) to determine its positive length. We return the sum of characters in the string.","A summary."," We computed the number of digits in an integer using mathematical logic only, and also by using the ToString method. The ToString version will force an allocation on the managed heap and is likely much slower. ","ToString ","tostring","And: ","Performance depends on the string implementation and garbage collection specifics.","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","3679700504","data-ad-format","link","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","url(data:image/png;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAACCAgMAAADasxWRAAAADFBMVEX/6Nn///+VlZX29va5ksB5AAAASElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOSAALWyrsxEHLDAAAAAElFTkSuQmCC)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAABpCAMAAADflzs9AAAAVFBMVEX////2+fju9PHy9/X0+Pbx9vTo8Ozj7ejZ5uDP4tmwz8Dd6uTL3dTV49x8sJe208Wuzr/P39drpoq61chopIecw7CSvahgn4F1rJFjoYOAsppyqo9IgRfDAAACtElEQVR4Xu3XyVKEMBSF4cxh7Hn2/d9TrtE+VUhTaJrcLPIvLGXjJyegiq/0ZfPIoIBRt2sOBYzLCePzwZiA+bgwtvnBaNES5iylYUlrLbffGGnlF+YiteJKNyPMWUjNkh0wu18YprTNCCM1PwZpZfLBmJwwumAKpmAKpmCSVzAFUzAF47oQvlgCcEMrYtxfMBboVTBtTpguG4wfDCoXjCXQNMb3g6/3Iwo1Bvlq3/Wti8aIfdfVwFCghtw8BnP3JhbjCQEMLMjNYhSAdSyGFO43Zk+KvuoJs39iTLhQDT0xNSm86wM7DiPCww0MoA6fvD7A6ueOtKSPxVSkGGPa502vCTuD8T9YQ8xYDDHUGENr+Oc362cw9LNYQRHGRmJoJz/GYBwoxxgcLmepeEwYov4/pkPxmDCEeRNGxGIsTTJ/ZtJhaPbqH08T2AqAaAzt5Be+ZwxhzOjR7u3bMEG16A2MWSqBlx6qojHYff53E2YhJy68GVMBA820RVjAoXkTBqz5v2eQaseXXRU2da7831QwBbNmUjapMPK4na1pds0lFcadrgtKhTlkhPH5YIxoCXM/ve5wSIXRAbNTbjLvvFKXK3VOgJEVYRqpJ7PWmPPTsjJG2m+MsFMpZRUsqTBbIScyRmhYEmJeBEsSTAvMjCUl5jhv4cfAwo+BhR8DSzKMUMBMWh4yIeblTE2wWJEQo19gtsGihGC+M7A4wYyBZaPA4JsJG/HfGVj4McfReeF66cGygYURc8RG3BicF34Mzgs/BueFGwOLEvwYbMSPgYUbsx2dF14MLPyYY4eNuDH3xwGW5BhkFDmw0SLMppls20S0o84nWJZhEgQLP+bmxTLMx/qWUy8WYjbX+7pdb5VYlFau7uq12g8NH71YilHGGLlKhpJieUZbtWbWavGH5MqJuEqfDRAN8iKPPjsAAAAASUVORK5CYII=)"]

["url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAAB4BAMAAADS7QcCAAAAGFBMVEX////0qHKhmbLDvs74yKT4xaH4yqr2tYUVUWgbAAAAfUlEQVR42u3XsQmAMBgF4V9xAAOCfVxAdAEdQtwg1il0fsHS8IpIsLob4OvPnKy1V7WXWb+J9pQZZpG3zkRNyowmmmBgYGBgYGBgYGBgYGA+Mn0QHTl3V+o1iYieKifLYq4gilnMYqIVBgYGBgYGBgYGBgYG5gfm3ESx0GvePshxrr29cIIAAAAASUVORK5CYII=)","url(data:image/jpeg;base64,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)"]