C# Programming

C# İterasyonlarında Etkin Dizin Alma

Spread the love

C# dilindeki foreach döngüsü, koleksiyonlar üzerinde yineleme yapmak için kullanışlı bir yoldur, ancak mevcut yinelemenin indeksini yerleşik olarak sağlamaz. Bu, hem öğeye hem de indeksine ihtiyacınız olduğunda sakıncalı olabilir. Bu makale, foreach benzeri yineleme içinde indeksi almak için iki etkili yöntemi ele almaktadır.

İçerik Tablosu

LINQ’un Select() Yöntemini Kullanma

LINQ’un Select() yöntemi, hem öğeyi hem de indeksini elde etmenin özlü bir yolunu sunar. Orijinal koleksiyonu, her öğenin indeksiyle eşleştirildiği yeni bir diziye dönüştürür.


using System;
using System.Collections.Generic;
using System.Linq;

public class ForeachIndexExample
{
    public static void Main(string[] args)
    {
        List<string> names = new List<string>() { "Alice", "Bob", "Charlie", "David" };

        // İndeksi ve öğeyi almak için Select() kullanın
        var indexedNames = names.Select((name, index) => new { Name = name, Index = index });

        // İndeksli dizi üzerinde yineleyin
        foreach (var item in indexedNames)
        {
            Console.WriteLine($"Ad: {item.Name}, İndeks: {item.Index}");
        }
    }
}

Bu kod, hem adı hem de indeksini içeren yeni bir anonim tür oluşturur. foreach döngüsü daha sonra bu yeni dizi üzerinde yineleyerek her iki bilgiye de erişim sağlar. Bu yaklaşım okunabilirdir ve her boyuttaki koleksiyonlar için iyi çalışır.

Standart for Döngüsünü Kullanma

Özellikle büyük koleksiyonlarda performansı iyileştirmek için standart bir for döngüsü daha doğrudan bir yaklaşım sunar. Bu, yeni bir dizi oluşturmanın ek yükünden kaçınır.


using System;
using System.Collections.Generic;

public class ForeachIndexExample
{
    public static void Main(string[] args)
    {
        List<string> names = new List<string>() { "Alice", "Bob", "Charlie", "David" };

        // İndeksli bir for döngüsü kullanın
        for (int index = 0; index < names.Count; index++)
        {
            string name = names[index];
            Console.WriteLine($"Ad: {name}, İndeks: {index}");
        }
    }
}

Bu yöntem, öğelere indekslerini kullanarak doğrudan erişir. foreach döngüsü kullanmasa da, büyük veri kümeleri için daha verimli bir çözüm sağlar.

Bu yöntemler arasından seçim, önceliklerinize bağlıdır. Select() yöntemi okunabilirlik sunarken, for döngüsü daha büyük koleksiyonlar için daha iyi performans sağlar. Seçiminizi yaparken veri boyutunuzu ve okunabilirliğin önemini göz önünde bulundurun.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir