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.
 

Yeni konular

Geri
Yukarı