C# Diziler [Eleman ekleme] Sorunum

20 Nis 2015
52
0
Merhaba Arkadaşlar,

Önceki açtığım bir konuda da bu soruna değinmiştim. Sizin verdiğiniz yararlı cevapları pratikte uygulayamadım ( benden kaynaklı) . Şimdi de sorunu daha ayrıntılı bir biçimde anlatıp sizden destek bekliyorum.
C# ile yazdığım konsol uygulamasında öncelikle:

1- Bizden oluşturduğum diziye kaydetmek üzere bir eleman girmemizi istiyor.

2- Daha sonra bir eleman daha eklemek isteyip istemediğimizi soruyor.

3- Evet cevabını verdiğimizde bir eleman ismi daha girmemizi istiyor. Fakat bu girişi yaptıktan sonra program sorun çıkarıyor. Nedeninin başta belirtiğim dizi boyutunu sonradan artırsam da program en başa dönüp dizi boyutunu tekrar görmediği için sınırı aştığını söylediğini düşündüm. Ne kadar doğru bilmiyorum ama aydınlatırsanız sevinirim. Buyrun bu da programın kodları:
Sıfırdan aynı işlevde kod paylaşmayıp benim yazdıklarım üzerinde çözüm üretirseniz çok sevinirim. Problemi görmem açısından Teşekkürler :)
Kodlar:
https://paste.ubuntu.com/p/WHysr67Ghv/
Resim halinde:
https://i.hizliresim.com/OrrN4D.png
Visual Studio 2019 da yazıldı.
 

white shade

Uzman üye
24 Eki 2014
1,832
13
Mars
metin169met

Sorun dediğin gibi dizinin boyutundan kaynaklı. Tanımladıktan sonra dizi boyutunu değiştiremezsin. İşte bunun için dizi mantığında çalışan ancak sonradan boyut değişimleri gibi güzel özellikleri olan koleksiyon yapıları var.

Koleksiyonlar Konu Anlatımı

Koleksiyonların içinde HashTable ArrayList gibi koleksiyon tipleri bulunmakta. Önemli bir konudur. :)
 
Son düzenleme:
20 Nis 2015
52
0
metin169met

Sorun dediğin gibi dizinin boyutundan kaynaklı. Tanımladıktan sonra dizi boyutunu değiştiremezsin. İşte bunun için dizi mantığında çalışan ancak sonradan boyut değişimleri gibi güzel özellikleri olan koleksiyon yapıları var.

Koleksiyonlar Konu Anlatımı

Koleksiyonların içinde HashTable ArrayList gibi koleksiyon tipleri bulunmakta. Önemli bir konudur. :)


Sitedeki bu cümle sorunuma çözüm sanırım bi inceleyeceğim sağ olun.
***
Diziler sabit boyutludur ve eleman sayısının önceden belirtilmesi gerekir. Koleksiyonlar ise dinamik yapıdadır yani sabit boyutlu değildir. Eleman eklendikçe boyutu dinamik olarak artmaktadır.
 
20 Nis 2015
52
0
Merhaba , önceki konunuza da yazmıştım sadece kodları birleştirmeniz gerekiyordu ben yazdım siz anlamadığınız bir nokta olursa sorabilirisniz :
https://paste.ubuntu.com/p/fpZYTxZM7W/



Elinize sağlık
Açıkçası henüz ref , if(; ), break gibi şeylerden bihaberim . Yavaş yavaş öğreniyorum ve bunları öğrenir öğrenmez ilk tercihim paylaştığınız şekil olacaktır.
 
Son düzenleme:

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,762
507
24
Praise The Fool
Ya dizinin boyutunu yeniden tanımlayacaksınız ya da koleksiyon yapılarını kullanacaksınız. Zaten koleksiyonlarda arka planında array kullanan yapılardır sadece daha dinamik versiyonları. Ekleme çıkarma işlemleri daha kolaydır. Generic List kullanıp eklemek istediğiniz değerin tipini de önceden belirleyebilirsiniz google'a yazmanız yeterli birkaç satır okuduktan sonra anlayabileceğini düşünüyorum. Hazır kod alarak ne bir yere varabilirsiniz ne de öğrenmiş olursunuz. Kurcalayarak burada cevap bekleyeceğiniz 2 saat yerine çoktan çözmüş olursunuz bence :))
 

anonuser23532

Kıdemli Üye
9 Ara 2017
2,602
12
Elinize sağlık
Açıkçası henüz ref , if(; ), break gibi şeylerden bihaberim . Yavaş yavaş öğreniyorum ve bunları öğrenir öğrenmez ilk tercihim paylaştığınız şekil olacaktır.


for ile bir döngü başlatarak sürekli devam etmesini sağladım bunu ( ; ; ) ile yaptım bu sonsuz döngü oluşturmamızı sağlar. Normalde while(true) şeklinde de yapabilirdik ama siz sürekli for kullanınca diğerlerini bilmiyorsunuzdur diye for ile yaptım.


if ile seçimi kontrol ettik evet , Evet ya da EVET ise kullanıcıdan giriş yapmasını istedik. Else ile başka bir şey girerse döngüden çıkmasını sağladık.
Sonsuz döngü oluşturduğumuz için kontrollü bir şekilde döngüden çıkmasını sağlamak zorundaydık. break komudu döngüden çıkmayı sağlar.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.