7. C# .NET Diziler

Download Report

Transcript 7. C# .NET Diziler

C#.NET 5.0
C# .NET 5.0 Eğitimleri
Volkan KANAT
Diziler
Diziler
- Diziler, aynı türdeki verilerin sıralanarak
gruğlandırılmasında kullanılan yapılardır.
- Dizi içerisinde veriler kaydedilirken, 0 numaralı
sıradeğerinden itibaren kaydedilmeye başlanır.
- Dizi içerisindeki elemanlara bu index numaraları
ile erişim sağlanabilir.
- Dizi oluşturulurken dizinin eleman sayısı
belirtilmelidir.
Diziler
int [ ] numara = new int[10]; // numara adında 10
elemanlı integer türünde bir dizi
tanımlanmaktadır.
- Dizi elemanlarına değer atama işlemi yapılırken,
dizi elemanının index değeri köşeli parantez
içerisinde yazılarak istenen dizi elemanına atama
yapılabilir.
Diziler
string [ ] adsoyad = new string[3];
adsoyad[0] = “Volkan KANAT”;
adsoyad[1] = “Ahmet Mehmet TEKİN”;
adsoyad[2] = “Fatih SARILALE”;
Diziler
- Dizilere tanımlama esnasında da değer ataması
yapılabilir.
string [ ] adsoyad= {“Volkan” , “Talha”, “Rıfkı”};
Tek Boyutlu Diziler
- Tek boyutlu diziler, yalnızca eleman sayısı
belirtilerek tanımlanan dizilerdir.
- Dizilerin boyutu belirtilmedikçe tek byutlu
olarak kabul edilirler.
- Diziler konusunun başında anlatılan örnekler tek
boyutlu dizilerdir.
Çok Boyutlu Diziler
- Tek boyutlu dizileree benzer şekilde tanımlanır
ve kullanılırlar. Farklı olarak virgül karakteri
kullanılarak dizi boyutu belirlenir ve kullanılır.
string [ , ] adsoyad = new string[3,3];
- Yukarıdaki satırda 2 boyutlu 3’er elemanlı string
türde adsoyad isimli bir dizi tanımladık. Dizinin
toplam eleman sayısını boyut x eleman sayısı
şeklinde bulabiliriz. (3 x 3 = 9)
Çok Boyutlu Diziler
string [ , ] adsoyad = { {“Volkan” , “KANAT”}, {
“Mustafa”, “AKSU”}, { “Enver”, “ARSLAN” } }; // 2x3=6
- Çok boyutlu dizileri dikdörtgensel ve düzensiz
olmak üzere iki gruba ayırabiliriz.
Dikdörtgensel Diziler
-Dikdörtgensel diziler her satırında eşit sayıda
elemanın bulunduğu dizilerdir. Şekli dikdörtgene
benzediği için bu isimle adlandırılırlar.
int [ , ] dizi = new int[3,4] {{1,2,3,4}, {1,2,3,4},
{1,2,3,4} } ;
Uygulama
-Yukarıda tanımladığımız örnek dizi elemanlarını,
konsol ekranında tek tek listeleyen konsol
uygulamasının kodlarını yazalım.
Uygulama
static void Main(string[] args)
{
int [ , ] dizi = new int[3,4] {{1,2,3,4}, {1,2,3,4}, {1,2,3,4} } ;
for(int i=0; i<dizi.GetLength(0); i++){
for(int j=0; j<dizi.GetLength(1); j++){
Console.Write(dizi[i,j]);
if(j == dizi.GetLength(1)-1)
Console.WriteLine();
}
}
Console.ReadLine();
}
Düzensiz Diziler
-Her bir satırı farklı uzunlukta olan diziler
düzensiz diziler olarak adlandırılırlar.
- İç içe diziler şeklinde tanımlanırlar. Yani bir
dizinin elemanları tanımlanırken her bir elemanın
içerisinde başka bir dizinin elemanları
tanımlanabilir.
int [] [] düzensiz_dizi = { new int[] { 1 },
new int[] { 1, 2, 3 },
new int[] { 1, 2 } };
Uygulama
- Düzensiz bir dizi oluşturarak içerisindeki
elemanları listeleyen konsol uygulamasının
kodlarını yazalım.
Uygulama
static void Main(string[] args)
{
int [] [] duzensiz_dizi = { new int[] { 1},
new int[] { 1, 2, 3},
new int[] { 1, 2} } ;
foreach(var satir in duzensiz_dizi)
{
foreach(var eleman in satir)
Console.Write(“{0} ”, eleman);
Console.WriteLine();
}
Console.ReadLine();
}
Dizileri Yeniden Boyutlandırma
- Bir dizi boyutu belirterek tanımlanabildiği gibi
parantez içi boş bırakılarak da boyutu
belirtilmeden tanımlanabilir.
- Gerek boyutu belirtilerek tanımlanmış olsun
gerekse boyutu belirtilmeden tanımlanmış olsun
program içerisinde boyutu yeniden belirlenebilir.
Dizileri Yeniden Boyutlandırma
string [ ] adsoyad = new string[2];
adsoyad[0] = “Volkan”;
adsoyad[1] = “Mehmet”;
adsoyad =new string[3];
adsoyad[2] = “Faruk”;
CreateInstance Metodu
- Yeni bir diziyi, değişken tipini ve eleman sayısını
belirleyerek tanımlamak için kullanılan metoddur.
Array.CreateInstance(Değişken Türü, Eleman Sayısı, Boyut)
CreateInstance Metodu
static void Main(string[] args)
{
Array okulturu = Array.CreateInstance (typeof(string), 3);
string [] okulturleri = (string[])okulturu;
okulturleri[0] = (“Endüstri Meslek”);
okulturleri[1] = (“Teknik”);
okulturleri[2] = (“Anadolu Teknik”);
Console.Write(okulturleri[1]);
Console.ReadKey();
}
IsArray Metodu
- Bir değişken dizi değişkeni olup olmadığını
anlamak amacı ile kullanılan metoddur.
- Geriye true ya da false olmak üzere boolean
değer göndürür.
IsArray Metodu
static void Main(string[] args)
{
string[] okulturu = {“Anadolu”, “Meslek”, “Teknik”};
string ad = “Volkan”;
Type tip;
tip = okulturu.GetType();
Console.WriteLine(tip.IsArray);
tip = ad.GetType();
Console.WriteLine(tip.IsArray);
Console.ReadKey();
}
SetValue Metodu
- Dizi elemanlarına değer atamak amacı ile
kullanılan metoddur.
SetValue(“Atanacak değer”, atanacak index numarası);
SetValue Metodu
static void Main(string[] args)
{
Array okulturleri = Array.CreateInstance(typeof(string), 3);
okulturleri.SetValue(“Endüstri Meslek”, 0);
okulturleri.SetValue(“Teknik”, 1);
okulturleri.SetValue(“Anadolu Teknik”, 2);
Console.Write(okulturleri.GetValue(2));
Console.ReadKey();
}
GetValue Metodu
- Dizi içerisindeki elemanlara erişmek amacı ile
kullanılır.
GetValue(index değeri);
GetValue Metodu
static void Main(string[] args)
{
Array okulturleri = Array.CreateInstance(typeof(string), 3, 3);
diller.SetValue(“VB.NET”, 0, 0 );
diller.SetValue(“C#”, 0, 1 );
diller.SetValue(“C++”, 0, 2 );
diller.SetValue(“Python”, 1, 0 );
diller.SetValue(“Perl”, 1, 1 );
diller.SetValue(“Ruby”, 1, 2 );
diller.SetValue(“ASP.NET”, 2, 0 );
diller.SetValue(“JavaScript”, 2, 1 );
diller.SetValue(“Silverlight”, 2, 2 );
Console.WriteLine(diller.GetValue(0, 1));
Console.ReadKey();
}
Join Metodu
- Dizi içerisindeki değerlerin hepsini bir string
değişkene, belirtilen ayırıcı karakter kullanarak
aktaran metoddur.
String.Join(ayırıcı karakter, dizi değişken adı)
Uygulama
- ListBox içerisindeki değerleri join metodu ile
karakterini kullanarak bir TextBox içerisine aktaran
form uygulamasının kodlarını yazalım.
Uygulama
private void button1_Click(object sender, EventArgs e)
{
string [] diller;
diller = new string[listBox1.Itens.Count];
byte i;
for(i=0; i<= listBox1.Items.Count – 1; i++)
{
diller[i] = listBox1.Items[i].ToString();
}
textBox1.Text = string.Join(“,”, diller);
Contains Metodu
- Bir dizi içerisinde bir elemanın var olup
olmadığını bulma amacı ile kullanılır. Geriye
boolean bir değer döndürür.
- Eğer aranan değer bulundu ise true, bulunmadı
ise false değeri dönecektir.
Contains(aranan değer)
Contains Metodu
static void Main(string[] args)
{
string aranan;
string[] isimler = new string[4];
isimler[0] = “Hasan”;
isimler[0] = “Murat”;
isimler[0] = “Talha”;
isimler[0] = “Onur”;
Console.Write(“Aranan degeri giriniz: ”);
aranan = Console.ReadLine();
if (isimler.Contains(aranan) == false){
Console.Write(“Aranan deger bulunamadı ”); }
else{
Console.Write(“Aranan deger bulundu ”); }
Console.ReadKey();
}
BinarySearch Metodu
- Dizi içerisinde aranan elemanın index
numarasını geriye döndüren metoddur.
- Bu metod ile arama yapabilmek için üzerinde
arama işlemi yapılacak dizinin sıralı olması gerekir.
BinarySearch(Arama yapılacak dizi değişkenin adı, aranacak değer,
aramanın başlayacağı index değeri)
BinarySearch Metodu
static void Main(string[] args)
{
int indexno;
string aranan;
Array okulturu = Array.CreateInstance(typeof(string), 3);
okulturu.SetValue(“Endüstri Meslek”, 0);
okulturu.SetValue(“Teknik”, 1);
okulturu.SetValue(“Anadolu Teknik”, 2);
Console.Write(“Aranan degeri giriniz: ”);
aranan = Console.ReadLine();
indexno = Array.BinarySearch(okulturu, aranan.ToString());
if(indexno < 0){
Console.Write(“Aranan deger bulunamadı“); }
else{
Console.Write(“Aranan deger bulundu. İndex degeri = “ + indexno); }
Console.ReadKey();
}
Volkan KANAT
Web: http://volkankanat.com/
Mailito: [email protected]
Twitter: https://twitter.com/VolkanKanatMuh
Dinlediğiniz İçin Teşekkürler