<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TDictionary arşivleri - Keşif Ruhu</title>
	<atom:link href="https://www.kesifruhu.com/tag/tdictionary/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kesifruhu.com/tag/tdictionary/</link>
	<description>Keşfet, Deneyimle, Paylaş</description>
	<lastBuildDate>Sat, 19 Apr 2025 10:30:40 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://www.kesifruhu.com/wp-content/uploads/2024/09/siteico-150x150.png</url>
	<title>TDictionary arşivleri - Keşif Ruhu</title>
	<link>https://www.kesifruhu.com/tag/tdictionary/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</title>
		<link>https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/</link>
					<comments>https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/#respond</comments>
		
		<dc:creator><![CDATA[darklaz]]></dc:creator>
		<pubDate>Sat, 19 Apr 2025 10:22:57 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[TDictionary]]></category>
		<category><![CDATA[TList]]></category>
		<guid isPermaLink="false">https://www.kesifruhu.com/?p=539</guid>

					<description><![CDATA[<p>8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.) Delphi programlama dilinde, verileri düzenli bir şekilde saklamak ve yönetmek için diziler (arrays) ve koleksiyonlar (collections) önemli <a class="mh-excerpt-more" href="https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/" title="8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)">[...]</a></p>
<p><a href="https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/">8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</a> yazısı ilk önce <a href="https://www.kesifruhu.com">Keşif Ruhu</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img decoding="async" src="https://images.pexels.com/photos/247791/pexels-photo-247791.png?auto=compress&amp;cs=tinysrgb&amp;fit=crop&amp;h=627&amp;w=1200" alt="image text"/></figure>



<p></p>



<h1 class="wp-block-heading">8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</h1>



<p>Delphi programlama dilinde, verileri düzenli bir şekilde saklamak ve yönetmek için diziler (arrays) ve koleksiyonlar (collections) önemli araçlardır. Bu yapılar, aynı türden birden fazla veriyi tek bir değişken adı altında toplamamızı ve bu verilere kolayca erişmemizi sağlar. Bu makalede, Delphi&#8217;de dizilerin ve koleksiyonların ne olduğunu, nasıl kullanıldığını ve hangi durumlarda tercih edilmesi gerektiğini detaylı bir şekilde inceleyeceğiz.</p>



<h2 class="wp-block-heading">Diziler (Arrays)</h2>



<p>Diziler, aynı türden verilerin sıralı bir şekilde saklandığı veri yapılarıdır. Delphi&#8217;de diziler statik veya dinamik olarak tanımlanabilir. Statik dizilerin boyutu derleme zamanında belirlenirken, dinamik dizilerin boyutu çalışma zamanında değiştirilebilir.</p>



<h3 class="wp-block-heading">Statik Diziler</h3>



<p>Statik diziler, boyutları önceden belirlenmiş olan dizilerdir. Tanımlanırken eleman sayısı belirtilir ve bu sayı programın çalışması sırasında değiştirilemez.</p>



<p><strong>Tanımlama:</strong></p>



<p>Statik bir dizi tanımlamak için aşağıdaki sözdizimi kullanılır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="var
  diziAdi: array[baslangicIndeksi..bitisIndeksi] of veriTipi;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  diziAdi: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[baslangicIndeksi..bitisIndeksi] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> veriTipi;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p><strong>Örnek:</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="var
  sayilar: array[1..5] of Integer;
  isimler: array[0..9] of String;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  sayilar: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">.</span><span style="color: #B5CEA8">.5</span><span style="color: #D4D4D4">] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  isimler: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4">[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">.</span><span style="color: #B5CEA8">.9</span><span style="color: #D4D4D4">] </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, <code>sayilar</code> adında 1&#8217;den 5&#8217;e kadar indekslere sahip integer türünde bir dizi ve <code>isimler</code> adında 0&#8217;dan 9&#8217;a kadar indekslere sahip string türünde bir dizi tanımlanmıştır.</p>



<p><strong>Değer Atama ve Erişim:</strong></p>



<p>Dizinin elemanlarına değer atamak ve erişmek için indeksler kullanılır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="sayilar[1] := 10;
sayilar[2] := 20;

var ilkSayi: Integer := sayilar[1];
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">sayilar[</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">] := </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">sayilar[</span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">] := </span><span style="color: #B5CEA8">20</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span><span style="color: #D4D4D4"> ilkSayi: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4"> := sayilar[</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">];</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">Dinamik Diziler</h3>



<p>Dinamik diziler, boyutları çalışma zamanında belirlenen ve değiştirilebilen dizilerdir. Bu, programın ihtiyaçlarına göre dizi boyutunu ayarlama esnekliği sağlar.</p>



<p><strong>Tanımlama:</strong></p>



<p>Dinamik bir dizi tanımlamak için aşağıdaki sözdizimi kullanılır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="var
  diziAdi: array of veriTipi;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  diziAdi: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> veriTipi;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p><strong>Örnek:</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="var
  notlar: array of Double;
  ogrenciIsimleri: array of String;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  notlar: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">Double</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  ogrenciIsimleri: </span><span style="color: #569CD6">array</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">of</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, <code>notlar</code> adında double türünde ve <code>ogrenciIsimleri</code> adında string türünde dinamik diziler tanımlanmıştır. Ancak, bu dizilerin boyutları henüz belirlenmemiştir.</p>



<p><strong>Boyutlandırma:</strong></p>



<p>Dinamik dizilerin boyutunu belirlemek için <code>SetLength</code> fonksiyonu kullanılır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="SetLength(notlar, 100); // notlar dizisinin boyutunu 100 olarak ayarla
SetLength(ogrenciIsimleri, 50); // ogrenciIsimleri dizisinin boyutunu 50 olarak ayarla
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">SetLength(notlar, </span><span style="color: #B5CEA8">100</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// notlar dizisinin boyutunu 100 olarak ayarla</span></span>
<span class="line"><span style="color: #D4D4D4">SetLength(ogrenciIsimleri, </span><span style="color: #B5CEA8">50</span><span style="color: #D4D4D4">); </span><span style="color: #6A9955">// ogrenciIsimleri dizisinin boyutunu 50 olarak ayarla</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<p><strong>Değer Atama ve Erişim:</strong></p>



<p>Dinamik dizilerin elemanlarına değer atamak ve erişmek için statik dizilerde olduğu gibi indeksler kullanılır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="notlar[0] := 95.5;
ogrenciIsimleri[0] := 'Ahmet';
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">notlar[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">] := </span><span style="color: #B5CEA8">95.5</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">ogrenciIsimleri[</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">] := </span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">Koleksiyonlar (Collections)</h2>



<p>Koleksiyonlar, dizilere göre daha esnek ve gelişmiş veri yapılarıdır. Delphi&#8217;de birçok farklı koleksiyon türü bulunur. Bunlardan bazıları şunlardır:</p>



<ul class="wp-block-list">
<li><strong>TList:</strong> Sıralı bir liste oluşturmak için kullanılır.</li>



<li><strong>TDictionary:</strong> Anahtar-değer çiftlerini saklamak için kullanılır.</li>



<li><strong>TStringList:</strong> String türündeki verileri saklamak ve yönetmek için kullanılır.</li>



<li><strong>TQueue:</strong> İlk giren ilk çıkar (FIFO) prensibine göre çalışan bir kuyruk yapısıdır.</li>



<li><strong>TStack:</strong> Son giren ilk çıkar (LIFO) prensibine göre çalışan bir yığın yapısıdır.</li>
</ul>



<h3 class="wp-block-heading">TList</h3>



<p><code>TList</code>, nesneleri veya pointer&#8217;ları saklamak için kullanılan sıralı bir listedir. Dinamik olarak büyüyebilir ve küçülebilir.</p>



<p><strong>Kullanımı:</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="uses
  System.Generics.Collections;

var
  liste: TList<Integer&gt;;
  i: Integer;
begin
  liste := TList<Integer&gt;.Create;
  try
    liste.Add(10);
    liste.Add(20);
    liste.Add(30);

    for i := 0 to liste.Count - 1 do
      ShowMessage(IntToStr(liste[i]));
  finally
    liste.Free;
  end;
end;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">uses</span></span>
<span class="line"><span style="color: #D4D4D4">  System.Generics.Collections;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  liste: TList&lt;</span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;;</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  liste := TList&lt;</span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">20</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">30</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> liste.Count - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">      ShowMessage(IntToStr(liste[i]));</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    liste.Free;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">TDictionary</h3>



<p><code>TDictionary</code>, anahtar-değer çiftlerini saklamak için kullanılan bir koleksiyondur. Her anahtar benzersiz olmalıdır. Bu yapı, verilere anahtar üzerinden hızlı erişim sağlar.</p>



<p><strong>Kullanımı:</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="uses
  System.Generics.Collections;

var
  sozluk: TDictionary<String, Integer&gt;;
begin
  sozluk := TDictionary<String, Integer&gt;.Create;
  try
    sozluk.Add('Ahmet', 25);
    sozluk.Add('Ayşe', 30);

    ShowMessage(IntToStr(sozluk['Ahmet'])); // 25
  finally
    sozluk.Free;
  end;
end;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">uses</span></span>
<span class="line"><span style="color: #D4D4D4">  System.Generics.Collections;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  sozluk: TDictionary&lt;</span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">, </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  sozluk := TDictionary&lt;</span><span style="color: #569CD6">String</span><span style="color: #D4D4D4">, </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">&gt;.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    sozluk.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">25</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    sozluk.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Ayşe&#39;</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">30</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    ShowMessage(IntToStr(sozluk[</span><span style="color: #CE9178">&#39;Ahmet&#39;</span><span style="color: #D4D4D4">])); </span><span style="color: #6A9955">// 25</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    sozluk.Free;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h3 class="wp-block-heading">TStringList</h3>



<p><code>TStringList</code>, string türündeki verileri saklamak ve yönetmek için özel olarak tasarlanmış bir koleksiyondur. Metin dosyalarını okuma, yazma, sıralama ve arama gibi işlemler için kullanışlı yöntemler sunar.</p>



<p><strong>Kullanımı:</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Pascal</span><span role="button" tabindex="0" data-code="var
  stringList: TStringList;
  i: Integer;
begin
  stringList := TStringList.Create;
  try
    stringList.Add('Elma');
    stringList.Add('Armut');
    stringList.Add('Kiraz');

    for i := 0 to stringList.Count - 1 do
      ShowMessage(stringList[i]);
  finally
    stringList.Free;
  end;
end;
" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #569CD6">var</span></span>
<span class="line"><span style="color: #D4D4D4">  stringList: TStringList;</span></span>
<span class="line"><span style="color: #D4D4D4">  i: </span><span style="color: #569CD6">Integer</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">begin</span></span>
<span class="line"><span style="color: #D4D4D4">  stringList := TStringList.Create;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">try</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Elma&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Armut&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.</span><span style="color: #569CD6">Add</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;Kiraz&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> i := </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">to</span><span style="color: #D4D4D4"> stringList.Count - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">do</span></span>
<span class="line"><span style="color: #D4D4D4">      ShowMessage(stringList[i]);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">finally</span></span>
<span class="line"><span style="color: #D4D4D4">    stringList.Free;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #569CD6">end</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span></code></pre></div>



<p></p>



<h2 class="wp-block-heading">Diziler mi, Koleksiyonlar mı?</h2>



<p>Diziler ve koleksiyonlar arasındaki temel farklar ve ne zaman hangisinin tercih edilmesi gerektiği aşağıda özetlenmiştir:</p>



<ul class="wp-block-list">
<li><strong>Boyut Esnekliği:</strong> Dinamik dizilerin boyutu çalışma zamanında değiştirilebilirken, statik dizilerin boyutu sabittir. Koleksiyonlar genellikle dinamik olarak büyüyebilir ve küçülebilir.</li>



<li><strong>Veri Türü:</strong> Diziler belirli bir veri türündeki elemanları saklarken, bazı koleksiyonlar (örneğin <code>TList</code>) farklı türdeki nesneleri saklayabilir. Ancak, tipleri önceden belirtmek generic koleksiyonlar ile mümkündür.</li>



<li><strong>Fonksiyonellik:</strong> Koleksiyonlar, dizilere göre daha fazla fonksiyonellik sunar. Örneğin, <code>TStringList</code> metin dosyalarını okuma/yazma, sıralama ve arama gibi işlemleri kolaylaştıran yöntemler içerir.</li>



<li><strong>Performans:</strong> Dizilere erişim genellikle koleksiyonlara göre daha hızlıdır. Ancak, koleksiyonların sunduğu ek fonksiyonellik ve esneklik, bazı durumlarda performanstan ödün vermeye değer olabilir.</li>
</ul>



<p><strong>Genel olarak:</strong></p>



<ul class="wp-block-list">
<li>Eğer boyutun önceden bilindiği ve nadiren değiştiği durumlarda diziler tercih edilebilir.</li>



<li>Eğer boyutun çalışma zamanında değişmesi gerekiyorsa veya daha fazla fonksiyonelliğe ihtiyaç varsa koleksiyonlar daha uygun olabilir.</li>
</ul>



<h2 class="wp-block-heading">Özet</h2>



<p>Delphi&#8217;de diziler ve koleksiyonlar, verileri düzenli bir şekilde saklamak ve yönetmek için güçlü araçlardır. Diziler, aynı türden verileri sıralı bir şekilde saklarken, koleksiyonlar daha esnek ve gelişmiş veri yapılarıdır. Hangi yapının kullanılacağı, uygulamanın gereksinimlerine ve performans ihtiyaçlarına bağlıdır. Bu makalede, dizilerin ve koleksiyonların temel kavramlarını, kullanım örneklerini ve ne zaman hangisinin tercih edilmesi gerektiğini ayrıntılı olarak inceledik. Bu bilgiler, Delphi projelerinizde daha etkili veri yönetimi stratejileri geliştirmenize yardımcı olacaktır.</p>
<p><a href="https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/">8. Diziler (Arrays) ve Koleksiyonlar (List, Dictionary, vb.)</a> yazısı ilk önce <a href="https://www.kesifruhu.com">Keşif Ruhu</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kesifruhu.com/yazilim/8-diziler-arrays-ve-koleksiyonlar-list-dictionary-vb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
