Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 2582|Yanıt: 1

[Kaynak] .NET/C# akıllıca bir şekilde foreach içindeki indeksleri seçer

[Bağlantıyı kopyala]
Yayınlandı 1.02.2024 20:26:18 | | | |
Giriş

For ve foreach döngüleri, C# geliştirici araç kutusundaki en faydalı yapılardan biridir.
Bence bir koleksiyonun üzerinden geçmek çoğu durumdan daha kullanışlıdır.
Tüm koleksiyon türleriyle, indekslenemeyenler (örneğin, , ve mevcut öğeye indeks üzerinden erişim gerektirmez) dahil olmak üzere tüm koleksiyon tipleriyle çalışır.
Ama bazen mevcut öğenin bir indeksi gerçekten gereklidir; Bu sorunu bir süre önce geliştirme sürecinde olan koleksiyonlarda gezerken foreach kullanırken karşılaştım. Bu genellikle aşağıdaki kalıplardan birini kullanır:


Her zaman rahatsız oldum; Hem değerleri hem de indeksleri alamıyor muyuz?
Linq ve tuples ile basit bir çözüm var.

Çözüm 1:

Şöyle bir uzantı yöntemi yaz:

Lütfen yukarıdaki kodu aşağıdaki isim alanına dahil edin:

Çağırma yöntemi:

Not: Koleksiyonun arkasındaWithIndex();

Çözüm 2:

Uzatma yöntemini zahmetli bulursanız, Çözüm 2'yi de kullanabilirsiniz

Yapıldı, performans üzerinde biraz etkisi var, talep üzerine kullanımını gözlemleyebilirsiniz!!





Önceki:Nginx, TLSv1.0 ve TLSv1.1 geçersiz çözümlerini devre dışı bırakıyor
Önümüzdeki:Oracle sorguları alanda tam büyük harf sorunlarını geri getiriyor
 Ev sahibi| Yayınlandı 24.02.2024 17:00:44 |
.NET 9 çift koleksiyonlarıIndex extension yöntemi eklendi, dizini doğrudan alabilirsiniz, şuna bakabilirsiniz:Bağlantı girişi görünür.

public statik System.Collections.Generic.IEnumerable<(int Index, TSource Item)> Index<TSource> (bu System.Collections.Generic.IEnumerable<TSource> kaynak);

VS 2022 önizlemesini şu adresten indirin:Bağlantı girişi görünür.

.NET 9.0 Önizleme İndir:Bağlantı girişi görünür.

Aşağıdaki kodla yeni bir .NET 9 konsol uygulaması oluşturun:







Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com