C# : IndexOf
Top 36 C# Example Pages...

[[".jkCCBCCSTUUUUTTUUUUYF64467446744FZCBECP46767F55[BC.B.STTUUUUTTUUUU","rt.rwryd..","IndexOfAny."," This method searches a string for many values. It returns the first position of any of the values you provide (or -1).","Overloads, notes."," The .NET Framework provides several overloads of IndexOfAny. This method is useful in certain contexts. Its performance is not great.","Some examples."," IndexOfAny is an instance method that returns an integer value type indicating the position of the found character, or the special value -1 if no value was found. ","And: ","The first argument is a character array, which you can declare directly in the parameter list or separately as a variable.","Tip: ","It is sometimes faster to store this char array separately and reuse it whenever calling IndexOfAny.","Char Array ","char-array","First: ","The first call searches for a lowercase e or an uppercase B. It finds the lowercase e because it comes first in the string.","Next: ","The second method call has the same parameter value and it locates the uppercase B in its source string.","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","br","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 IndexOfAny method","\n\nusing System;\n\nclass Program\n{\n static void Main()\n {","\n // Input.\n ","const string value1 = ","\"My cat eats fish.\"",";\n const string value2 = ","\"Visual Basic is hard.\"",";","\n\n // Find first location of 'e' or 'B'.\n ","int index1 = value1.","IndexOfAny","(new char[] { ","'e'",", ","'B'"," });\n Console.WriteLine(value1.Substring(index1));","\n\n // Find first location of 'e' or 'B'.\n ","int index2 = value2.","IndexOfAny","(new char[] { ","'e'",", ","'B'"," });\n Console.WriteLine(value2.Substring(index2));\n }\n}\n\n","Output","\n\neats fish.\nBasic is hard.","IndexOfAny benchmark."," Consider now the performance of IndexOfAny. Can this method be used in performance-critical string methods? We test its performance. ","Results: ","The IndexOfAny method seems to perform much worse than a for-loop with an if-statement. For a simple search, it is far slower.","For ","for","If ","if","However: ","If an array of characters is needed, the IndexOfAny method's performance will likely be more competitive.","C# program that benchmarks IndexOfAny","\n\nusing System;\nusing System.Diagnostics;\n\nclass Program\n{\n const int _max = 1000000;\n static void Main()\n {\n string test = ","\"abcdefg\"",";","\n // Version 1: test IndexOfAny.\n ","var s1 = Stopwatch.StartNew();\n for (int i = 0; i < _max; i++)\n {\n int result = test.","IndexOfAny","(new char[] { 'd', 'x', '?' });\n if (result != 3)\n {\n return;\n }\n }\n s1.Stop();","\n // Version 2: test custom loop with if-statement.\n ","var s2 = Stopwatch.StartNew();\n for (int i = 0; i < _max; i++)\n {\n int result = -1;\n ","for"," (int x = 0; x < test.Length; x++)\n {\n if (test[x] == 'd' || test[x] == 'x' || test[x] == '?')\n {\n result = x;\n break;\n }\n }\n if (result != 3)\n {\n return;\n }\n }\n s2.Stop();\n Console.WriteLine(s1.Elapsed.TotalMilliseconds);\n Console.WriteLine(s2.Elapsed.TotalMilliseconds);\n }\n}\n\n","Results","\n\n","36.7644 ms"," IndexOfAny\n"," 6.175 ms"," For-loop","Notes, overloads."," IndexOfAny has 3 overloads. You can provide the startIndex and the count parameter integer values. The arguments determine the method's behavior. ","Overload ","overload","Arguments: ","The 2 values indicate the position in the source string you want to begin searching, and then the number of characters to check.","Notes, forward-only."," The IndexOfAny method always performs a forward-only (left to right) scan of the input string. You can use the LastIndexOfAny method for a reversed scan. ","LastIndexOfAny ","lastindexof","Summary."," IndexOfAny provides a way to scan an input string declaratively for the first occurrence of any of the characters in the parameter char array. IndexOfAny reduces loop nesting. ","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","3679700504","data-ad-format","link","br","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto"],"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALMAAABSCAMAAAAo0hXmAAAAGFBMVEX////3z8PzZ4v3sbf0k5r68N/xH2v157ja+sAcAAACl0lEQVR4Xu2awYqEMBAFp5Po/P8fLzPsQS2kNisNNtjXwFLte1NxwddxlnU/8f7M69bTD8zjy7zcmnkcmFsB5vU479uXI8DcUY4b1rlcodumEJtC37ocW85Wo9Cx7UOvUeixvUiiRqH3dShR6GWvilHh+j40uFcoxziYosD1jQIXsB1EUcB2QLxku+jjm1Nro8d7WZZ807EsM6LsY91N+2R1ik1DkYwcIFy2f2uSOcbKGcgKrUQJ4WAcd56w0M7cG3g3acmvH1CCgYCwoDFjCE0g1lIcLKVBka4wrx3Q8iQlBZRml0pMM7fxa4voTdohgUJfsuqU7doGOLY1CHnQEigenJSGsTjzCEQId3hl50136mxnjpMnxXJIyt4btmDCdljPzjgAEwSUhkteZO5eaAbqpuOJXN/OzBTVdiGllWxsy6n8hRmBzpvODuaZm1yFCHTedAwgg9kJaLr5kyRmBuqd4Yln48wk8nc7l62dUNyXmHno5hoTDoRrMpgtUJrOubhPEjMDtZR5Ir1JYIbtxHQ4EdsnMTNQ99navxPHwf4ZzAzUTecTmcwEVNPJYP8EZtjOTeczMplpOzOdDbZNYaa+QursE5nMtJ2ZbqYcOcysr5qO2zCIlspMTUAkZ4kozjuJmbaD6U6b7/vnMNN2dJ8Dca1MZtoOldTgpT6Xmd123UzX/pJ7JDLTdkNMh22k0AnMsN256bCN2C6JmbaLCdO57TKYabuBbP2NXtLIYN5dfVOmc9tdZfZCt9YmTCe2y2YOecmROstuOcwveZmUzKVDScwN3yTKf9z+g05n7lINiVxKlMO81Pgk0V//C4x4qsbnXAUGbigxeKcrMBWrUcB0j+ke0z2me6rxmC5lHtPFY7r/zWO6Hw5aZfXvwUh4AAAAAElFTkSuQmCC)","url(data:image/png;base64,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)","url(data:image/jpeg;base64,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)"]

["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/jpeg;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKEAAABJCAMAAABimLZrAAAAGFBMVEX////zpsv2wdr99Pj50+T74e386vLvgrhS6vXpAAAB3klEQVR4Xu2YS24DMQxDrZ99/xt3URRCFgOOGjYMinDNyIHwxnjwIib2d2Jxk2eUjSf5c6eaeT107YyyrtKTcuE4OMZ3d88otq7Sk2LhGD7pZ8w+94L3E2jNj12c+isMbeHUYB08DJ2FYWdzMbQeC2PPHWeAeIghzlU3otIA9uAojJY93Y0mz+ZHYbSc0PUmcUw8RqsI3ebUp8RT7uvuYqgNUDzI7pGEbi9xiiFXGxxXTswoJmtD4jWfPaCYj2EsDOKeYUjWhjudGlKMtYHVbcGZUYzRInWjOSTf15vUbQ7F2oC/5dBqAy4dtTbgG1usDdh+jK0NNMWwRkGqDdh+UqwN+FMutjaQui3ZSm3Yr8QwBmzE6L52sjY4Sxu8/UynDX5nz6bUhrqzwmRrA6lbvUKtNuCXu3xTbbCmUKkNCRqNtVAb0KuSS18bDtDCi3Glvq/TTidGFPMxBC+bTZpGG3As1pJgGLM/qNEGnGZAoQ2jBWq0AcZ6jkQbQCyj2xptuIyZe9GO4tsrjt5ecfTagEPFkHDhKuw1B125NuDwtYHc1dsrjvS1AUSuDSm5r4N+4b7pawP/50l8bfhP2vDRhvWu2lBvrw2u1QZC96MNtK5eG/yl2mBCbeBjaL/G8AtqQEnsBU7ZMwAAAABJRU5ErkJggg==)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAABBCAMAAABYbu5jAAAAMFBMVEX///+1wv+jqv9siv/p6//W3f8zZv9gb//19v9NK/8zAP999//S//8z//8zzP+z6P/0gInFAAABg0lEQVR4XtXXy1ICURAD0H7c96D+/9/KQqkhlEKD0iTrWZzKYtJXbou2s+jvn1Q55f2mfAMOb6Ec5D6+c/ObcvOdm98qN9+5+a1w842b3wo33/6Dv2H22g3zCL+PKF/uSKDsGL8pN9+5+U25+c7Nb5Wb74R8h+ki41eYLja+Qf1k/AL1k/HF4XIg4ytMFxl/X7/z8aF+Ov6A6bqR//FTnswXa2B96LmyPZtfoH4yvsDlwMaHy4GLj/Xz8RXqJ+PD5UDGh+ni448O08XEh+lSrtUVnC6qm+ey/krGx+li4+N0sfHh7Cfj43Sx8bF+Mj5OFxkf67c8frF+jJUovzRIBr/4+kovMb5YPr/OdcrUGL9k8FG/Tw3xxbP55/o1R4hfk/m6IBbii+fyJ/JnjK+5/HWRGuJLfzG+xvh6lX89f8m3GH90ar7Ya/FrkF8y+XNhRpAvlsi3+H8fUxP5A+svYb54Hl8Uy4/zNZEvCvo4XzyRLzrhXg7zNZMvw/o6ptsQpvDnE+wJyVGQ5SG7AAAAAElFTkSuQmCC)"]