Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

Grup İçermeli Çoklu Seçim Listeleri - Spectre Console Serisi

[[academy-video-youtube({"vid": "VIUANifUTWI", "start_time": "0", "title": "Gruplamalarla Çoklu-Seçim Listeleri - Spectre Console Serisi", "creator": "Tim Corey", "length": "6m 21s"})]]

Spectre Console düz C# konsol uygulamalarınızı görsel olarak zengin, etkileşimli araçlara dönüştürmenize olanak tanıyan bir .NET kütüphanesidir. Statik siyah-beyaz ekranlar yerine, kullanıcıları renkle, düzenlerle ve etkileşimli seçimlerle karşılama olanağı sunar. Bu makalede, en güçlü giriş özelliklerinden birine — çoklu-seçim istemlerine — ve özellikle seçim gruplarını nasıl kullanacağınıza göz atacağız.

Bunu Tim Corey'nin "Gruplamalarla Çoklu-Seçim Listeleri – Spectre Console Serisi" adlı videosundaki yürüme saatini izleyerek yapacağız. Tim açıklar, kodu gösterir ve çalıştırır, böylece bunu kendi projenizde nasıl uygulayacağınızı görebilirsiniz. Aşağıda, her başlıkta konunun videoda ne zaman göründüğünü not alarak doğrudan atlayabilirsiniz.

Çoklu-Seçim İstemine Giriş

Videonun başında, Tim Corey izleyicilere Spectre Console'un "C# konsol uygulamalarınızı görsel çekici, bilgilendirici uygulamalara dönüştürmenize" izin verdiğini hatırlatır (0:02). Serisi, kütüphaneyi parça parça on dakikalık dilimlerle inceliyor. Bu özel video, kullanıcının açılır bir listeden veya birden fazla listeden bir veya daha fazla seçeneği seçmeye yönlendirme istemine odaklanıyor (0:18).

Basit Bir Çoklu-Seçim İstemi Kurma

Tim, kodunda zaten iki liste bulunduğunu göstererek başlar:

List<string> usualNames = new() {
    "Tim Corey",
    "Sue Storm",
    "Bilbo Baggins",
    "John Doe",
    "Princess Donut",
    "Steve Rogers"
};

List<string> familyNames = new() {
    "Charity",
    "Jon",
    "Chris"
};
List<string> usualNames = new() {
    "Tim Corey",
    "Sue Storm",
    "Bilbo Baggins",
    "John Doe",
    "Princess Donut",
    "Steve Rogers"
};

List<string> familyNames = new() {
    "Charity",
    "Jon",
    "Chris"
};

(You can see these on screen at about 0:38.)

Kullanıcının sıfır, bir veya birçok öğeyi seçebileceği favoriteNames adlı bir List<string> oluşturuyor (0:53–1:01). Ardından, AnsiConsole.Prompt'un sonucuna, yeni bir MultiSelectionPrompt<string>() (1:05–1:16) ile atar.

Tim, her seçimin bir dizi nesne olacağını ve istemin, kullanıcının seçtiği seçimlerin bir dizi veya liste olarak döndürüleceğini vurgular (1:20–1:26).

Daha sonra kullanıcıyı yönlendirmek için özelleştirilmiş bir başlık ekler:

.Title("Which are your favorite placeholder names?")
.Title("Which are your favorite placeholder names?")

Bu, istemin en üstünde açık bir başlık kurar (1:31–1:50).

Kullanıcı Yönlendirmesi için Talimat Metni Ekleme

Tim sadece bir başlıkla yetinmez. Ayrıca kullanıcının istemle nasıl etkileşimde bulunacağını söyleyen talimat metni de ekler (1:50).

Şuna benzer bir şey yazar:

.InstructionsText("(Press <space> to toggle, <enter> to accept)")
.InstructionsText("(Press <space> to toggle, <enter> to accept)")

1:56'da renk veya diğer stillerle biçimlendirebileceğinizi — Spectre Console'un vurgu rengini özelleştirme desteği sunduğunu açıklıyor, böylece talimatlarınız anahtar kısımları vurgulamak için yeşil, mavi, sarı, gri veya kırmızı görünebilir.

Önemli olan kısım kullanıcıya şunu söylemektir: Öğeleri değiştirmek için boşluk çubuğuna basın, cevabınızı kabul etmek için enter tuşuna basın (2:12). Bu, komut dosyasını kullanıcı için kolay hale getirir.

Seçenekler Ekleme ve Sonuçları Görüntüleme

Sonrasında, Tim gerçek verileri ekler. Başlangıçta tek listeyle basit tutar. .AddChoices(usualNames) (2:24–2:34) kullanır.

Ardından console'a kullanıcı seçimlerini geri iletmek için basit bir foreach döngüsü yazar (2:38–2:52):

foreach (var name in favoriteNames)
{
    Console.WriteLine(name);
}
foreach (var name in favoriteNames)
{
    Console.WriteLine(name);
}

Biçimlendirme ile ilgili endişelenmez — sadece çoklu seçim isteminin çalıştığını göstermektedir (2:53–3:00).

Tim programı terminalde çalıştırır (3:00). İstem, isim listesini gösterir. Boşluk çubuğunu kullanarak birkaç öğe seçer — "Tim Corey" ve "Sue Storm" gibi — sonra Enter'a basar ve konsol seçilen seçenekleri yazdırır (3:07–3:15). Bu, en basit çalışan versiyonu sergiler.

Spectre Console Multi Select Lists Groupings 1 related to Seçenekler Ekleme ve Sonuçları Görüntüleme

Seçenek Grupları ile Birden Fazla Listeye Geçiş

Temel ayar çalışırken, Tim işleri "biraz daha ilginç" hale getiriyor (3:22). Sadece bir liste yerine, iki liste kullanır: usualNames ve familyNames.

Orijinal .AddChoices() çağrısını yoruma alır ve .AddChoiceGroup() tanıtır (3:32–3:38). Bu, onun ilgili öğeleri bir etiket altında gruplayabilmesini sağlar. Şunu yazar:

.AddChoiceGroup("The usual names", usualNames)
.AddChoiceGroup("Family names", familyNames)
.AddChoiceGroup("The usual names", usualNames)
.AddChoiceGroup("Family names", familyNames)

Artık her grup ayrı ayrı istemde görünecek. Bu yapı, düzinelerce seçeneği sunarken ve bunları sayfa veya gruplara organize etme isteğiniz olduğunda özellikle yardımcıdır. Transcript bunu göstermese de, Spectre Console'un çoklu seçim istemi ayrıca bir PageSize özelliğine sahiptir, böylece bir ekrana sığmayan daha fazla seçenek olduğunda kaç öğenin bir seferde gösterileceğini kontrol edebilirsiniz.

Çalışma Zamanında Grup Seçimi Nasıl Çalışır

Tim kodu tekrar kaydeder ve çalıştırır (4:11). Yeni istek, her iki grubu da net etiketlerle gösteriyor. İmleci "The usual names" etiketine getirip boşluk tuşuna basarsa, o gruptaki tüm öğeler bir kerede seçilir (4:17–4:19).

Ayrıca, eğer liste ekrandan daha uzunsa, Spectre Console'un otomatik olarak kaydırmayı yönettiğine dikkat çekiyor — gri renkte "daha fazla seçenek görmek için yukarı ve aşağı hareket edin" mesajını göreceksiniz (4:25–4:31). Bu, kaydırılabilir listeler için varsayılan bir davranıştır.

Tim, aile isimlerine kaydırmayı, onları seçmeyi ve ardından Sue Storm gibi bir bireyi de seçmeyi gösteriyor (4:39–4:43). Enter tuşuna bastığında, konsol tüm seçilen isimleri birleştirilmiş şekilde yazdırır (4:45). Bu, işlevin daha fazla seçeneği nasıl gösterdiğini, bunları nasıl değiştirmenize izin verdiğini ve ardından seçilen nesnelerin tek bir listesini nasıl döndürdüğünü gösterir.

Spectre Console Multi Select Lists Groupings 2 related to Çalışma Zamanında Grup Seçimi Nasıl Çalışır

Çoklu Seçim İstemini Anlama vs. Seçim İstemi

Tim, saat 5:00'te gösterdiklerini özetliyor. Çoklu seçim istemi, normal seçim istemi gibi çalışır ancak geçirdiğiniz herhangi bir tür değerini içeren bir liste döndürür (5:03–5:08).

O (5:14–5:18) gibi talimat metni ekleyebilir ve tüm grupları tek bir tuşla seçmek için seçim gruplarını kullanabilir ve isteğe bağlı olarak seçebilirsiniz. Bu, kullanıcı için büyük veya karmaşık menüleri çok daha yönetilebilir hale getirir.

Bu ayrıca, Spectre Console'un karmaşık nesnelerle çalışabilme yeteneğine işaret eder: seçim nesneniz bir string'den daha fazlası olabilir. Kullanıcı cevabını kabul ettiğinde tam nesneyi geri almaya devam ederken, görüntülenen içeriği kontrol etmek için ChoiceLabel özelliğine sahip bir nesne sağlayabilirsiniz.

Seçim Grupları ve Etiketlerin Esnek Kullanımı

Tim ayrıca, .AddChoiceGroup() kullanmak için iki gruba sahip olmanız gerekmediğini de açıklar (5:20–5:24). Tek bir grup bile olsa, yine de tüm grubu bir seferde seçebilme avantajından yararlanırsınız.

O, gruba "Tümünü Seç" gibi daha genel bir isim verebileceğinizi gösteriyor (5:34–5:42). Üst seçeneği seçmek daha sonra aşağıdaki tüm öğeleri (5:44-5:47) etkinleştirir veya devre dışı bırakır. Kullanıcıyı varsayılan veya gerekli gruba yönlendirmek için, örneğin grup etiketini yeşil veya mavi yaparak renk vurgulaması da kullanabilirsiniz. Bu, istemlerinizi nasıl yapılandıracağınız konusunda size çok fazla esneklik sağlar.

Sonuç

Tim, videoyu özetleyerek bitirir: İşte böylece, Spectre Console ile grup seçimi için seçimin gruplarının eklenmesiyle birlikte çoklu seçim istemleri yapabilirsiniz (5:50–5:53). Her zamanki gibi, kaynak kodu açıklamada (5:57) yer almaktadır.

Tim Corey'nin Tanıtımından Önemli Çıkarımlar

Spectre Console çoklu-seçim, kullanıcılara bir listeden sıfır, bir veya birden fazla öğe seçme olanağı tanır.

  • Kullanıcıları yönlendirmek için bir başlık ve talimat metni ekleyin; Zorunlu bilgileri vurgulamak için vurgu rengini kullanabilirsiniz.

*.AddChoices() basit bir liste için kullanılabilir; birden fazla veya gruplanmış liste için .AddChoiceGroup() kullanın.

  • Kullanıcılar seçimleri değiştirmek için Boşluk tuşuna, kabul etmek için Enter tuşuna basar.

kullanılabilir

Komut istemi, temel nesneyi döndürürken ChoiceLabel özelliği olan karmaşık nesneleri görüntüleyebilir.

Sayfa boyutu ve kaydırma, bir sayfaya sığmayan daha fazla seçeneğiniz olduğunda yardımcı olur.

Tim Corey'nin örneğini — onun genellikle kullandığı isim ve soyadlarından oluşan gerçek listeleri ile — takip ederek, kendi Spectre Console uygulamalarınıza hızlı bir şekilde temiz ve kullanıcı dostu çoklu seçim listeleri uygulayabilirsiniz.

Hero Worlddot related to Grup İçermeli Çoklu Seçim Listeleri - Spectre Console Serisi
Hero Affiliate related to Grup İçermeli Çoklu Seçim Listeleri - Spectre Console Serisi

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara