C# ListBox'tan Veri Alma

İ'yi ne için kullanacağız?

C#:
 double enlem, boylam, yukseklik;

enlem = Convert.ToDouble(textBox1.Text);
boylam = Convert.ToDouble(textBox2.Text);
yukseklik = Convert.ToDouble(textBox3.Text);

if (radioButton1.Checked == true)
{
double wgs84a = 6378137.00, wgs84b = 6356752.31424518;

double A, B;
A = (Math.PI / 180) * enlem;
B = (Math.PI / 180) * boylam;

double ke2;
ke2 = ((wgs84a * wgs84a) - (wgs84b * wgs84b)) / (wgs84a * wgs84a);

double N;
N = (wgs84a / (Math.Sqrt(1 - (ke2 * ((Math.Sin(A)) * (Math.Sin(A)))))));

double X, Y, Z;
X = (N + yukseklik) * (Math.Cos(A)) * (Math.Cos(B));
Y = (N + yukseklik) * (Math.Cos(A)) * (Math.Sin(B));
Z = (((1 - ke2) * N + yukseklik)) * (Math.Sin(B));

Liste içinde verileri tek tek bu kodlarda kullanacağım. 1.sütun enlem, 2.sütun boylam, 3.sütun yükseklik o verdiğim listede.
Bence for, foreach döngülerini detaylıca öğrenin.
 
Bence for, foreach döngülerini detaylıca öğrenin.
C#:
private void button2_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < listBox1.Items.Count; i++)
                for (int j = 0; j < listBox2.Items.Count; j++)
                    for (int k = 0; k < listBox3.Items.Count; k++)
                    {
                        listBox1.Items[i].ToString();
                        listBox3.Items[j].ToString();
                        listBox3.Items[k].ToString();


                        double wgs84f = 0.00335281, wgs84a = 6378137.00, wgs84b = 6356752.3141;
                        double lambda;
                        lambda = (Math.Atan(j / i));
                        if (i >= 0)
                        {
                            lambda = (Math.Atan(j / i));
                        }
                        else if (i < 0 && j >= 0)
                        {
                            lambda = ((Math.Atan(j / i)) + 3.1415926535898);

                        }
                        else if (i < 0 && j < 0)
                        {
                            lambda = ((Math.Atan(j / i)) - 3.1415926535898);
                        }
                        double lambdaderece;
                        lambdaderece = (lambda * (180 / Math.PI));

                        double ke2;
                        ke2 = ((wgs84a * wgs84a) - (wgs84b * wgs84b)) / (wgs84a * wgs84a);

                        double P;
                        P = Math.Sqrt((i * i) + (j * j));

                        double R;
                        R = Math.Sqrt((P * P) + (k * k));

                        double teta;
                        teta = Math.Atan((k * ((1 - wgs84f) * (ke2 * wgs84a / R))) / P);


                        double enlem;
                        enlem = Math.Atan((k * (1 - wgs84f) + ke2 * wgs84a * (Math.Pow((Math.Sin(teta)), 3))) / ((1 - wgs84f) * (P - ke2 * wgs84a * (Math.Pow((Math.Cos(teta)), 3)))));

                        double fiderece;
                        fiderece = (enlem * (180 / Math.PI));

                        double yukseklik;
                        yukseklik = P * (Math.Cos(fiderece)) + k * (Math.Sin(fiderece)) - wgs84a * (Math.Sqrt(1 - ke2 * (Math.Pow((Math.Sin(fiderece)), 2))));

                        listBox4.Text = lambdaderece.ToString();
                        listBox5.Text = fiderece.ToString();
                        listBox6.Text = yukseklik.ToString();

                    }         
        }
    }
}

Şu hale getirdim, ancak bir sayıyı 0'a bölmeye çalıştınız şeklinde bir hata aldım sebebi ne olabilir?
 
i ve j hatta k'nın başlangıç değerleri 0 ve hemen altında i/j gibi bir ifade var. j'nin 0 olduğu her durumda DividedByZero Exception alırsınız o yazdığınız satır ile.
i.j ve k'ya başlangıç değeri tanımlamak istemiyorum. Direkt o listedeki değerleri almak istiyorum.
 
Eğer 3 sütun bir birine bağlıysa; 1. satır sadece 2. ve 3. satır ile ilişkiliyse;
ListView kullanmak zaten mantıksız. Yine de ListBox kullanmak istiyorsanız da tek For döngüsü yeterli.

Eğer öğe sayıları aynı ise, for kullanabilirsiniz.
C#:
for(int i = 0; i < myListBox1.Items.Count; i++)
{
    myListBox1.Items[i].ToString();
    myListBox2.Items[i].ToString();
    myListBox3.Items[i].ToString();
}

Gibi kullanmanız gerek.

Genel olarak programlama ve analitik düşünme yetiniz zayıf. 1 hafta gibi ara verip döngüler, veri yapıları, koşullar, fonksiyonlara oturup çalışın derim. Bu şekilde her attığınız adımda çaresiz kalırsınız.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı