﻿
{"id":27101,"date":"2024-08-11T06:59:06","date_gmt":"2024-08-11T06:59:06","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=27101"},"modified":"2024-08-11T06:59:06","modified_gmt":"2024-08-11T06:59:06","slug":"searchvalues-ile-dizi-arama-performansini-artirma","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/searchvalues-ile-dizi-arama-performansini-artirma\/","title":{"rendered":"SearchValues \u0130le Dizi Arama Performans\u0131n\u0131 Art\u0131rma"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Malumunuz i\u015f s\u00fcre\u00e7lerinde belirli i\u015flemler i\u00e7in diziler i\u00e7erisinde veri aramak olduk\u00e7a yayg\u0131n bir davran\u0131\u015f olabilmektedir. Amma velakin bu davran\u0131\u015flar ciddi maliyetlere ve \u00f6nemli \u00f6l\u00e7\u00fcde performans kay\u0131plar\u0131na da yol a\u00e7abilmektedir. Bu i\u00e7eri\u011fimizde, bu tarz durumlara kar\u015f\u0131n uygulama performans\u0131n\u0131 iyile\u015ftirmek i\u00e7in tasarlanm\u0131\u015f ve .NET 8 ile gelmi\u015f olan <em>SearchValues<\/em> \u00f6zelli\u011fini inceliyor olaca\u011f\u0131z.<\/p>\n<p><em>SearchValues<\/em>, b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken hesaplama h\u0131z\u0131n\u0131 ve verimlili\u011fini art\u0131rmak i\u00e7in kullan\u0131lan vekt\u00f6rle\u015ftirme(vectorization) tekni\u011fiyle birlikte donan\u0131m h\u0131zland\u0131rma gibi optimizasyonlar e\u015fli\u011finde geli\u015ftirilmi\u015f olan \u00f6zel bir s\u0131n\u0131ft\u0131r. Bu s\u0131n\u0131f, kendisine verilen ve dizi i\u00e7erisinde aranacak olan verileri immutable olacak \u015fekilde readonly tutmaktad\u0131r.<\/p>\n<p>SearchValues s\u0131n\u0131f\u0131 a\u015fa\u011f\u0131daki \u00f6rnekten de g\u00f6r\u00fclece\u011fi \u00fczere;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing System.Buffers;\r\n\r\nstring&#x5B;] names = &#x5B;&quot;\u015euayip&quot;, &quot;Hilmi&quot;, &quot;R\u0131fk\u0131&quot;, &quot;C\u00fcneyt&quot;, &quot;Raif&quot;, &quot;Muiddin&quot;, &quot;H\u00fcseyin&quot;, &quot;Bekir&quot;];\r\n\r\nSearchValues&lt;string&gt; selectedNames = SearchValues.Create(&#x5B;&quot;\u015euayip&quot;, &quot;Muiddin&quot;], StringComparison.OrdinalIgnoreCase);\r\nvar _names = names.Where(t =&gt; selectedNames.Contains(t))\r\n                .ToList();\r\n\r\n_names.ForEach(name =&gt; Console.WriteLine(name));\r\n<\/pre>\n<\/div>\n<p>bir koleksiyon i\u00e7erisinde birden \u00e7ok belirli de\u011feri araman\u0131n en h\u0131zl\u0131 yollar\u0131ndan birini sunmaktad\u0131r. .NET 8&#8217;de ilk \u00e7\u0131kt\u0131\u011f\u0131nda yaln\u0131zca char ve byte dizilerini desteklerken .NET 9 ile birlikte bu niteli\u011fi string dizisini destekleyecek \u00f6l\u00e7\u00fcde geni\u015fletilmi\u015ftir.<\/p>\n<p>\u00d6zellikle LINQ ve EF Core sorgulama s\u00fcre\u00e7lerinde a\u015fa\u011f\u0131daki gibi \u015fartlar\u0131 koleksiyonel de\u011ferlendirdi\u011fimiz noktalarda olduk\u00e7a etkili neticeler vermektedir.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nSearchValues&lt;string&gt; _roles = SearchValues.Create(&#x5B;&quot;Admin&quot;, &quot;Moderator&quot;], StringComparison.OrdinalIgnoreCase);\r\n\r\nvar roles = context.Roles.Where(r =&gt; _roles.Contains(r.Name))\r\n    .ToList();\r\n<\/pre>\n<\/div>\n<p>Ayr\u0131ca ek olarak, yukar\u0131daki \u00f6rnekten de anla\u015f\u0131laca\u011f\u0131 \u00fczere SearchValues s\u0131n\u0131f\u0131na <code>System.Buffers<\/code> namespace&#8217;i i\u00e7erisinden eri\u015fim g\u00f6sterilmektedir.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Malumunuz i\u015f s\u00fcre\u00e7lerinde belirli i\u015flemler i\u00e7in diziler i\u00e7erisinde veri aramak olduk\u00e7a yayg\u0131n bir davran\u0131\u015f olabilmektedir. Amma velakin bu davran\u0131\u015flar ciddi maliyetlere ve \u00f6nemli \u00f6l\u00e7\u00fcde performans kay\u0131plar\u0131na da yol a\u00e7abilmektedir. Bu i\u00e7eri\u011fimizde, bu tarz&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":27110,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4912,5085,12],"tags":[4915,5082,5084,5083],"class_list":["post-27101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net-8","category-net-9","category-c-sharp-c","tag-net-8","tag-searchvalues","tag-vectorization","tag-vektorlestirme"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=27101"}],"version-history":[{"count":6,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27101\/revisions"}],"predecessor-version":[{"id":27111,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27101\/revisions\/27111"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/27110"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=27101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=27101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=27101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}