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

["rwrte. X+BaCST~~}T~~YF647647647647F(BXBCBP78466FlCIBXCBZP66F66F8%BS}T~~}T~~","Length."," Every string object has a Length property. Every character (no matter its value) is counted in this property. Length is cached on strings.","Length, notes."," Length returns the character count in the string instance. The string cannot be null. It is possible to avoid exceptions with help from Length. ","Null ","null","An example."," First, string has a Length property, which returns the number of characters in its internal buffer. You do not need to iterate through every character of a string. ","Here: ","The four strings we use are all of different Lengths. There are variable strings, constant strings, and literal strings.","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 uses Length","\n\nusing System;\n\nclass Program\n{\n static void Main()\n {","\n // An example string.\n ","string a = ","\"One example\"",";\n Console.WriteLine(a.","Length",");","\n\n // An empty example string.\n ","string b = ","\"\"",";\n Console.WriteLine(b.","Length",");","\n\n // A constant string.\n ","const string c = ","\"Three\"",";\n Console.WriteLine(c.","Length",");","\n\n // A literal string.\n ","Console.WriteLine(","\"Four\"",".","Length",");\n }\n}\n\n","Output","\n\n11\n0\n5\n4","Notes, above program."," The final part treats a string literal, contained in quotation marks, as an object in the C# language. This is a powerful feature and can help make your code clearer. ","String Literal ","string-literal","Null."," We must first test for null strings before calling the Length property. This is because you cannot access members on null reference types. The IsNullOrEmpty method is ideal for this. ","IsNullOrEmpty ","isnullorempty","Also: ","There are some interesting behaviors with null strings at the class level.","Null Strings ","null-string","C# program that deals with null Length","\n\nusing System;\n\nclass Program\n{\n static void Main()\n {\n F(","null",");\n F(","\"cat\"",");\n F(","\"book\"",");\n F(","\"\"",");\n }\n\n static void F(string a)\n {\n if (string.IsNullOrEmpty(a))\n {","\n // String is null or empty.\n ","Console.WriteLine(true);\n }\n else\n {","\n // Print length of string.\n ","Console.WriteLine(a.Length);\n }\n }\n}\n\n","Output","\n\nTrue\n3\n4\nTrue","Research."," Microsoft's article on this subject has some interesting details. It tells you that the Length is not derived from the number of chars, but not symbolic Unicode chars. ","Tip: ","It is possible for null characters to be in the middle of C# strings. But this is not a common occurrence in purely managed code.","The Length property returns the number of Char objects in this instance, not the number of Unicode characters. The reason is that a Unicode character might be represented by more than one Char.","String.Length Property: MSDN ","https://msdn.microsoft.com/en-us/library/system.string.length.aspx","Cache."," We explore the idea of caching string Length integers. If you are using a string thousands of times and accessing the Length property each time, this may be incurring some overhead. ","Then: ","When accessing string Length, the callvirt MSIL instruction will be generated. Next the value will be retrieved.","IL: callvirt ","il","Benchmark."," I experimented with storing, or hoisting, the string Length outside of a tight loop. My result was that avoiding recalculating Length can have a performance benefit. ","Input data in benchmark: C#","\n\n","// Example string.\n","string one = \"one\" + 1.ToString();","\n\n// Cached length.\n","int cl = one.Length;\n\n","Code benchmarked in loops, 1000000000 iterations: C#","\n\n","// A.\n","int len = one.Length;\nif (one[len - 1] == 'x')\n{\n}","\n\n// B.\n","if (one[cl - 1] == 'x')\n{\n}\n\n","Results","\n\nAccess Length repeatedly: ","1305 ms","\nHoist Length out of loop: "," 646 ms"," [faster]","A summary."," The Length property finds the number of chars in a string. Hoisting the string Length out of a tight loop can improve performance. ","Property ","property","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,iVBORw0KGgoAAAANSUhEUgAAAMgAAABbCAMAAAABdDpBAAAAGFBMVEX///9YVfW/vvqSkPj60LHy6vD3snr1n1Oi0ZbiAAAEBUlEQVR4XuyY0arDMAxD+yA5///Hl3VU4AbhLRe2GaK3zMbambGX9mgkjKfi6C0MgZh4Fr4MwBjBBRCOu/D9Hz4WQPBrIOOhhRlhBxCJCzPSC0SKRwZ1bAGyQYDTJECfw2cO4MKnEfhPENkUINUsBabdf4phZk1pqsDjSmSKT8IM4m1qEI6sSLkpZEmQwzpQHmUdFjYlCGYDOkpvYQRvch8JOpsaxFvQdURiUWO5I1k0IJ4jkE7TjCiFmFoCxRVemxFvU4OoZAbDlBPMKVMN3MlXttZAtokKxH1vkUz+/jy1KNZB4g5WgWRP+I/k7wuG2T+LIFIJUljiXRAz/B8ACR3pd2kN4q8W/AwIdDZ7swtIvATCViAsO9If5OeHPZ/9g2OD9auzhoRLIP4P8eMgGhIsgKxeUXhIiBEsQOqllFICFxmAUDzViNvtj8Wl0dwjApeRqiYbzLYcJYiHvYVl8XqNdx4ZItncbVGCqIZLUFQtMTUKEJ8XUwCTbd0R3xNUHalrvPrKsOxINSMSpzwoXM+IRlwCE4hJ07iUM/KOcLEAgijkXgdBC8elXUbHj0sg3aXbRntRl5bO0pyybxekzg1JEE0nxL8/7t8RdN9UugVLW1tbW1tbW1tbW1tbf72X4VLDMAyDZ+n0/q/McTAMVSJiys3/uniqP7tKU6D2i0K9B6H931nvAbyo2L6Z/75lZH0Flyiojkoo+lRZLFyDWw1aUkMkEFblOhVKMK0M4jK5aQWHq8ocTjJvJmoAUoO2cvDHjotRqo5JquYTyWmKIP5P4ntD9xlC63tgAsLYCXzI4aK8Nnujwi87uvLmQmhKAOnrbDGtVoAkcy2LDqKfyti2k3dB4CbNMr7gZc61UDdBZBa1yBNhysxa7nQMQVwgsiaz8yQzz6wHAo1BgvumMpNHS/mt+fg7CENKkJl3xbdfL0MZROD+TBduPQcJduPBMYaPDNJBbWv8gIWmIF4sfzsCMXTgEKRKa+/BujUHEQ+OMtHpjwFIYQVC69ccRBWPH/HJ6g4ojCzOBJ7AMYhzZI9wuaYE8v27DK0SQYoRZM7hHzdYOj2BiEUY+RIEfaUxCIwjD2Y1kAAS9loDkTXHQEYcmQRLp2cQt/auhL4egrBFDkmYfVzUyUji0bcvDWT2pZ2ndxH3GIL4s4QpiJwjx/+BKP0CKyqDqJrj1SBuPvwZxDdUjyymgUdSRZg/WnMON3vE5OI2SiLNpoHZ83ZFf+PC0TECwXbH9mLW70yWB371KW3g6Ff74cFSvkBkEVTjgV2JcTiJKhg1SiQOR8WZCLfnyroPgqBwDKIzEXnK7Yl0MHJkECfJIvKUsUf2ReB4Z2VIwpkIA+r9EJ4wBG6oPEGBmGU5b5CPThswTEoIAAAAAElFTkSuQmCC)","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/jpeg;base64,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)"]

["url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAACCAgMAAADasxWRAAAADFBMVEX/6Nn///+VlZX29va5ksB5AAAASElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOSAALWyrsxEHLDAAAAAElFTkSuQmCC)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAA3CAAAAABVkOvVAAABSUlEQVR4Xu3Y4WnEMAyGYW+sfbSBlvh20Bbawq3TFCVFuDShJDJ6f4b7HB7IEe5afyKjIOjILk7Py2dY2oIYI7s8TcUqVrGKVSyTLf6M/sDyKfv0aVaczljztFj/VbGKVSyFiKqN8rKwvwb0iyHU9kgA6ATwvWTYaHL5ARYdwdyO0fw2FHwuuPw4S8hJ7tLULIK4J3BlZQ1V7LLMrBaGUUrWNPJBbhYR/WRpapa7JXgKk7L8FWy9U7BIy/InzlyalRU+cAux5CCgNVhOXonlX6wlWfZSVrGKVaxiFatYxSqWthVZ1pZk0WIs9VluFp9/f/oqNwtngHajtgDLDgIG2FG/LnULIz4cMsLIRpMpoil8eofVL/8hLO2Xdtzlqd1hyZqsHmqEsrMQHpue1TlQpWbFdyEBwPlZ/q7yI+UNrH43E9piqKpZf0Uf/uSX7MnWyF8AAAAASUVORK5CYII=)","url(data:image/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAABVCAMAAAAoqRvFAAAAMFBMVEX///+at8G00NBtlqnG5Np5nq+CprTg/urD09nx//WNrrrp/vD3/vrV4eTb6ujr8PJq773sAAADa0lEQVR4Xu3Z27LaMAwF0Ejy/ZL8/9+2pLWHg6IBE/sQz7Df4G1ZYQvD8sHQ/7jlRL6AL+AL+AK+AJwf8AV8AV9ARiCiAG6bEbChphpM0wE0/UiYRkA1kwpIipsdQGlugDyCjKCJSAO6dC0AICLoCoAjQHL6HonbZQCwersHCkAvPJthc7oKAG2JKQJ+uo548HIALICVnb++YF1xgCqA/AgIdBS9XQxgpaN1dBycBWDKkeN6GxTWEaSLAKL/GxmQC0w9fljyMEB2EIjIADi3PgGUY/QSoJw42JIwuErdQ2kbfOlCIwFCHUBJJQ0BbLwz4CWAFwC1XVlfhRGApOlNQDoGrAVgGYBGAAI1AgQTByCiuwURBgIc9QY44hkIML8JCP0BmWo04C0AoHEQAITePhGkgw1r42AA7+3zT5CyvwBAsbfPX1PsrwDk3m4Mr7x+gFwAlqf0dn+AGgBQDBDF3j69BfZz97fEGK0/A/DVdQgwowBeMLYDSjEYBvBib58HpKUbAAosrAwg9fZpQFz6ARTVBCwBAGM86+1uAP8UUE9ReKsmWUNCnvQ2z5YdQtjBAG6TAZR6AlACNPV2RmBlxQh12lsPQHUFAdDY2zw6S9/l1q4AqwVAa29zwSYsMtcR4K1dgwBo6m15Y/ClEzoC0g2FbGEBuqbeFqa4/QSEOoKTAG5VCDtCAyCqvTWbehte+TfCY5V1/BPCWyFNvf3vRp2z2hOOn6GkqEaDu4Vv9vZEAdDU28nHe7zhD7u8dGA5GQnQ3tv8x3y2dEYAUhQArLfPAOSlAyM+B9F71tvnAdEq3RfAn+EYvU/pvd6uUVAA7KCU6Q/gae/tna8QAQLd52jpPAxBY39Ae29774qWAaSlY/adY23sD2jv7S3QYZ4vnRGA9t7eNL0EWOJowJu9DfQiII0GvNfb670vADioAC4YD2jv7TqokHdQQg6Ql47vDWjvbSiNGP+GLTJx6ew7Z+mf9t6uNL6JPxi5t0UAXgcg9/YEgPberl//rwFo7224H0G0CouI8hUFUa5R0gB0H+0+AGjvbUVyPgBo721rhgLGx6rZAey2biYDPFwVQdVbpZkAUC+UoEkDuDXt+29FAENwbQAvqhhZZU2QZOUsU2R6QJodsPiZAXwGMS0pTgHgF8UYfaqvo7Xxg4A/SSVOouNrVk8AAAAASUVORK5CYII=)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAACNCAMAAADrVuThAAAAYFBMVEX////4x9v2s9D85e761OP97fP++fvEwIH0msH+8/fe2HbRy3zq4XH71I6VlZWhoZq9vKWxsbHNzc3PzKXi4uKxr5Lx8fH28bD4+Pjd2anp5a3/+rP06HCa9NH/9Gj/9429Bui2AAAD/0lEQVR4AdzYa4viMBTG8bwr1OE5J9dexul+/2+5GGZhbepYY8Rn+n9hQAj05wnWal5REkmXNYgzh8sBWWWB0RytUWxGOag5Xi7kJVjz3j5fkfq8+Ly8r5fidDowTubj4gZ8/grcMHnVGKOqn3aMI2bcJL8AN6ngqujnPTiv7Lghy4rED3dx0XPjBsWtxN/DYaLGTYIfkpsXn+EzZmLcoLiT/oTzGHhxg+Bucfv6ccGpfNLisq1Sl0cqkQlXYQO2BAM0v9DiIna2QZgvb3penMfupsIWIaqyH4f/+3qiP9eZ7RL2J+P1Vot/2dHsqhluPbntLB7Irv5iQKGjwgU8VLi50xLiLFA3ulEKNxsuAZWjc4WbDueAutGNWCd0OIvK0TkUseESUDk6yz85h8dL26cSyoazeDx34w6S2HCoKB8/3TCT4RJyFV8pglXWsOEcarLFp7L/t+VXERkOyYTSRoezqMoZVz4tHAUn643BHAeH4oGAESeoa7XP8ePq0yPjLCXOEkyOHecoce7IuIAmJUpcQovEUOKMoEGOFKdoUCLFhSZ3ORpc+3MZaHGuweBocO1Hl+hwQa3knrY5Q4ZLFq1S86bWuOW7s6BVcXmu9rjY0EaHQ6u6hQ/XoU39Qohb+oink+68EOJy54++P526rosxijwKi6ePJUeJKztfuP3pG5zJcgUSiTF23akvJsaB4+tvu3WX4zYMAwGYpH4wfmhP0Pufs6VKrdiFoZdULjadeXAUmA73A1aUiSOOOOKI+zK47zl4IcdwL+Rv4YgjjjjiiCOOOOKIIw45xBFHHHHE/Y84HuLEEUccccQRRxxxxBH3ZIg7hWsKmJX3xBk874kreGNcBdBi/ZY4+ZK4CkANsCqe6/e6iwiA2tRgGHFfUYzKdNcXpuOZq/qzxeuqGeJ3vMG4oX010Jp7ncRFdG0vWBNBZOFmrfV1NxYpVcQQsfFQeqwhkns9gEORPpqZX25wF2Z0h4OIYqZJvWfnXkdxpY8P9av1OUGCph97Tr1Uun/0ddcfbNIwfqdrGqtteEaDS4pXyxX/Fb3kXj9O4uIsM7/o3FB+sdJFconG31zibtSG3PfR+Br5wMksKGvwpl7fzuJCMIbAr0xcTdNyMha9LsHnoqqGkZobIA3e1esxXORVnCKyx0Wex5UXcA1j2tcXcAf3nGTL7Z7b4nzdY71wt3vu/CEerTXmoQNKxt1Pyz3uusWtaZl7PXPOlfXlBpfPuS2uzCPMkRmXzrnc66E3FN3h0hvKHrcIQPkT19JJ/xwu3i2LGmBW6x1Oms7KPa6r+Y8UtU+49W6Zex3FSWvyL3MW91iII46450PcPsQRRxxxxBFHHHHEEUccccT9BMmBXcwVjbcYAAAAAElFTkSuQmCC)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAABYCAMAAAD86EhmAAAAwFBMVEX////b3+TMzMyYpb1jV1fD0eluXkeir8S+xc/e5O2QmaTy8/OgkVeMeFO1rp2tnlcxNjp8bVYxJROspI1mZmZiT0F0dXqLg3pETFIGBgRMUFXz+P/i8P/Ckxc5QEVLPz2EcEeVkZLUpCAZERKqnHuZkHrcv2D5434ZJhTKr1z11F6ftuL/vx5lfVbO4f5aq0ONxYVQZUvX5v/o03zswTv/8m/ty1UxjBcnYBtBkCuTYQ/432t4mt7cry6lxv/94kNGVDL7AAAE9klEQVR4XtXY15LjNhCGUQGMOSjnPDmnzbbf/61M/E3NAitqCUqsHfu7I+fiFIdQV0utw01G6Gwg2lKXaLvfGRqgDC2oL+grClrVeY2rnobKgG5WknoGtH2syjVUXqJuoHZ01N5xajxCHTzFThVdKpCcrM5T9IX6LIo11ICL3KwvCqmFqPd9vxd0jq5QZC9F0Z3oEfGWbtxU1J7obb8Cv877DvpTmEXoTHScmtVRP0FN9lX3ODWCatdTJVZbdaFGf1rFaRokKEpxmg6rqFDtDB2lrtqAlii6An6OVA5do0/odbYWJUkoekCBrtofbfLaPdFiSVKIylQCSb2lEkSqp69e5qWkRgSFiegIlemq3SZVrq1i9C7qqahanRyqZV628xa2qBcCuU4QQbXUR1W9+bHfDYrRy9uF6NyOomhZnKO2aHOleK9Sa3QbRqKHryJ9tSN6uSB1GeUlpC5E7Z2KytQEE+Yj1QddtSOrV0eos8MqmMPqavdehbpM5Pe6G1HEyuottQ5RiTqRHCSdI5QUXaEwQSiMUELS+i/RGs2o5R0q2RKnpP5NWcjddkQXKKMpEV685F0NTdEbslO0fIU3k/pG2U+IVCarXpUa0ec1IXUM9TvU5QKVq0hWuazel6iOrGaF+tKkap2gpnXUuJZqS//hC+W9Zimy/6HTJDUrUR/31RuLijuInos2Ap/qiys7Okegx+tbNNvQgERttDBtVJzhzyJFvVHUAkXbni16V0XRNanjvKGqjlDBmpSsPmipF/8FNTuorkna1FF/yKorqwnUrCn1q4ROVHUrqeG+2gt11R56gvr0GUkjMSDVotyONIC3mWhgUANchfT9yRaZs1saugRdonSB+tTdEyKVSSpH75cIQM/FVauI8TzWoS0KY+F2MUKbrsj0nTxfXQUHo0vRF8Ql1UWTAmVeHoNqxwHL27EcdeiEQX3tjTaoa4pWvshV1JWsSn/ySG3JKieVn676shr/qnJZDUjN6qnjAVRHUWNZlYYTU1U43KZn9SrUbyO0MUk19lUX6ojUs19VtlMRx08RZ0xceIFymuIMzUTr5ZwaUKu8vq+obP4kukOP+6pmzEG0XsTyBt/y03me2dKJ11T9WETrRWfK0FSUq8O87oeoYy3VRV4DqgF1GGigQU2VF2pPtDpRDfRPkysaiLJYVicO1LnXqDpB6q3pBE2f83Yq01A9fVVuqiSrKddXW39WZY2pU5dUV1vljajzBlW1atWpO5rUJ5IcqQCVqdaxqms47xkWqU5lhvUsKtRYQ3UPq6yuOoTq6w/Ej1WdE9T7MdRVzYGoCoanr07BaqueqhpSPqmBUV2hmpjD/dqqJzdR71GMspTu0XNXV2WkAqiobDQ9Uzt1Xk/V0lAZVzStqfJm1D7UbrXKG1eH3UY3xHKcktXxpOZADJgnpd5jSpaaogZVaKCqlm8g5NCexHyjMldWh17NgWgZDkJui1TDqepdTaGymqp7muprLoneYdXQU5Gqck01aFJNK1Wmqo4hRSpOWFWOorqVKkelwz8gNfDKkz8/90epvxsLOjviM5oYpDoNqOUpXNFUV7WAsoZUJ9VbEnnDqta6Fnyg6kLV7HeqO9da1wILeUeoarVUPkD9bkMNoQ4qVKePxun8cMOieXVDNO/rqeaQGp+YpuqTOv6/qzpL4qo5FdVSzQIwT43sbvBb9F+BoNKC/cna+QAAAABJRU5ErkJggg==)"]