C# Tuple Kullanımı

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda tuple kullanımını anlatacağım. Hadi başlayalım !
Table of Contents
Kısa Tarihçe
C# dilinde tuple, birden fazla değeri tek bir nesne olarak gruplandırmak için kullanılan bir veri yapısıdır. Bir tuple, öğeleri farklı tipte ve farklı sayıda olabilen bir koleksiyondur. Tuple, .NET Framework 4.0 sürümü ile birlikte sunulmuştur ve C# 7.0 sürümünden itibaren dilin bir parçası olarak kullanılmaktadır.
Kullanım Amacı
Tuple, bir değeri döndürmek yerine, birden fazla değeri döndürmek için kullanılır. Tuple, aynı tipte veri yapısından farklı olarak, farklı tiplerde birden fazla veri taşıyabilir. Tuple, özellikle LINQ sorguları gibi yerlerde kullanışlıdır.
Tuple, System.Tuple isim alanı altında yer alan Tuple sınıfı tarafından temsil edilir. Tuple sınıfı, C# dilinde bir generic sınıftır. Tuple sınıfı, 8 parametreye kadar kullanılabilir. Tuple sınıfı, temel olarak immutable (değiştirilemez) bir veri yapısıdır, yani bir tuple nesnesi oluşturulduktan sonra, elemanları değiştirilemez.
Aşağıda, C# dilinde tuple kullanarak örnek bir uygulama yazmayı göstereceğim.
// Bir tuple nesnesi oluşturma
Tuple<int, string> person = Tuple.Create(1, "Ahmet");
// Tuple elemanlarına erişim
Console.WriteLine("Tuple öğesi 1: {0}", person.Item1);
Console.WriteLine("Tuple öğesi 2: {0}", person.Item2);
// Bir tuple nesnesi oluşturma
var person2 = Tuple.Create(2, "Mehmet", "Demir");
// Tuple elemanlarına erişim
Console.WriteLine("Tuple öğesi 1: {0}", person2.Item1);
Console.WriteLine("Tuple öğesi 2: {0}", person2.Item2);
Console.WriteLine("Tuple öğesi 3: {0}", person2.Item3);
// Bir tuple nesnesi oluşturma
var person3 = Tuple.Create(3, "Ayşe", "Kara", 35);
// Tuple elemanlarına erişim
Console.WriteLine("Tuple öğesi 1: {0}", person3.Item1);
Console.WriteLine("Tuple öğesi 2: {0}", person3.Item2);
Console.WriteLine("Tuple öğesi 3: {0}", person3.Item3);
Console.WriteLine("Tuple öğesi 4: {0}", person3.Item4);
// Bir tuple nesnesi oluşturma
var person4 = Tuple.Create(4, "Fatma", "Yılmaz", 25, "İstanbul");
// Tuple elemanlarına erişim
Console.WriteLine("Tuple öğesi 1: {0}", person4.Item1);
Console.WriteLine("Tuple öğesi 2: {0}", person4.Item2);
Console.WriteLine("Tuple öğesi 3: {0}", person4.Item3
Console.WriteLine("Tuple öğesi 4: {0}", person4.Item4);
Console.WriteLine("Tuple öğesi 5: {0}", person4.Item5);
Yukarıdaki örnekte Tuple sınıfının Create metodu kullanılarak dört farklı tuple nesnesi oluşturulmuştur. Bu tuple nesneleri, farklı sayıda ve tipte öğeler içermektedir. Tuple nesnesi oluşturulurken, tuple öğeleri sırasıyla tanımlanır ve Create metodu kullanılarak nesne oluşturulur. Tuple öğelerine erişmek için, nesnenin Item1, Item2, Item3 vb. özellikleri kullanılır. Tuple özellikleri aynı zamanda get ve set erişim belirteçlerine de sahiptir. Bu sayede, tuple öğeleri, bir kere atanarak sonradan değiştirilebilir. Tuple’ın kullanım alanlarından biri, LINQ sorgularında birden fazla değeri döndürmek için kullanılmasıdır. Aşağıdaki örnekte, bir liste içerisindeki en küçük ve en büyük sayıyı bulmak için Tuple kullanılmıştır.
List<int> numbers = new List<int> { 4, 1, 8, 3, 6, 9, 2, 5, 7 };
// En küçük ve en büyük sayıyı bulmak için Tuple kullanımı
var result = Tuple.Create(numbers.Min(), numbers.Max());
Console.WriteLine("En küçük sayı: {0}", result.Item1);
Console.WriteLine("En büyük sayı: {0}", result.Item2);
Yukarıdaki örnekte, Tuple sınıfı kullanarak, bir liste içerisindeki en küçük ve en büyük sayıyı bulduk. Tuple.Create metodu, Min ve Max metodlarının döndürdüğü değerleri alarak yeni bir Tuple nesnesi oluşturur. Tuple nesnesi, Item1 ve Item2 özellikleri aracılığıyla erişilebilir.
Sonuç
Sonuç olarak, Tuple, C# dilinde birden fazla değeri tek bir nesne olarak gruplamak için kullanılan bir veri yapısıdır. Tuple, özellikle LINQ sorguları gibi yerlerde kullanışlıdır. Tuple sınıfı, System.Tuple isim alanı altında yer alır ve C# 7.0 sürümünden itibaren dilin bir parçası olarak kullanılmaktadır.
Evet C# ile tuple kullanımı bu şekilde. Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.