none
Random kullanımı RRS feed

  • Soru

  •        private void btnRandom_Click(object sender, EventArgs e)
            {
                textBox1.Text = Convert.ToString(GetRandom(100000000, 999999999));
            }
            static int GetRandom(int min, int max)
            {
                Random _random = new Random();
                int _newnumber = _random.Next(min, max);
                foreach (char j in _newnumber.ToString())
                {
                    if (j == Char.Parse("0"))
                    {
                        _newnumber = 563145826;//Bu kısım
                    }
                }
                return _newnumber;
            }

    Burada yapmak istediğim,ürettiğim sayılar içinde sıfır rakamı olmayacak eğer varsa o değeri bir rakamla (örn: 563145806 değerindeki sıfırı 2 ile değiştirsin yani sonuç :563145826 gibi) yer değiştirmesini istiyorum.Fakat yazdığım kodda sıfıra eşitse şu değerle işlem yap dedim yani bu kısımda takıldım yardımlarınız için teşekkürler;

    27 Aralık 2015 Pazar 02:33

Yanıtlar

  • Muhtemelen daha kısa bir yolu vardır. Ama buda çalışıyor :)

       static int GetRandom(int min, int max)
            {
                Random _random = new Random();
                int _newnumber = _random.Next(min, max);
                string changeNumber = "";
                foreach (char j in _newnumber.ToString())
                {
                    if (j == Char.Parse("0"))
                    {
                       // _newnumber = 563145826;//Bu kısım                    
                        changeNumber = changeNumber + _random.Next(1, 9).ToString();
                    }
                    else
                        changeNumber = changeNumber + j;
                }
                return int.Parse(changeNumber);
            }



    • Düzenleyen Davut Kavuk 27 Aralık 2015 Pazar 05:30
    • Yanıt Olarak İşaretleyen Kenan YILMAZ 27 Aralık 2015 Pazar 19:26
    27 Aralık 2015 Pazar 04:41
  • static int GetRandom(int min, int max)
    {
      Random _random = new Random();
      int _newnumber = _random.Next(min, max);
      string sayi = _newnumber.ToString();
      sayi = sayi.Replace("0", new Random().Next(1,9).ToString());
      _newnumber = int.Parse(sayi);
      return _newnumber;
    
    }
    şeklinde dener misin?

    Her şeyi denediğin halde yapamadıysan henüz denemediğin şeyler var demektir.

    • Yanıt Olarak İşaretleyen Kenan YILMAZ 27 Aralık 2015 Pazar 19:26
    27 Aralık 2015 Pazar 10:12

Tüm Yanıtlar

  • Muhtemelen daha kısa bir yolu vardır. Ama buda çalışıyor :)

       static int GetRandom(int min, int max)
            {
                Random _random = new Random();
                int _newnumber = _random.Next(min, max);
                string changeNumber = "";
                foreach (char j in _newnumber.ToString())
                {
                    if (j == Char.Parse("0"))
                    {
                       // _newnumber = 563145826;//Bu kısım                    
                        changeNumber = changeNumber + _random.Next(1, 9).ToString();
                    }
                    else
                        changeNumber = changeNumber + j;
                }
                return int.Parse(changeNumber);
            }



    • Düzenleyen Davut Kavuk 27 Aralık 2015 Pazar 05:30
    • Yanıt Olarak İşaretleyen Kenan YILMAZ 27 Aralık 2015 Pazar 19:26
    27 Aralık 2015 Pazar 04:41
  • static int GetRandom(int min, int max)
    {
      Random _random = new Random();
      int _newnumber = _random.Next(min, max);
      string sayi = _newnumber.ToString();
      sayi = sayi.Replace("0", new Random().Next(1,9).ToString());
      _newnumber = int.Parse(sayi);
      return _newnumber;
    
    }
    şeklinde dener misin?

    Her şeyi denediğin halde yapamadıysan henüz denemediğin şeyler var demektir.

    • Yanıt Olarak İşaretleyen Kenan YILMAZ 27 Aralık 2015 Pazar 19:26
    27 Aralık 2015 Pazar 10:12
  • Arkadaşlar değerli cevaplarınız için teşekkürler;
    27 Aralık 2015 Pazar 19:26
  • static int GetRandom(int min, int max)
    {
    	Random r = new Random();
    	var n = r.Next(min, max);
    	for (int i = 1; i <= Math.Ceiling(Math.Log10(n)); i++)
    	{
    		if (n % Math.Pow(10, i) == n % Math.Pow(10, i - 1))
    		{
    			n += (int)Math.Pow(10, i - 1) * r.Next(1,9);
    		}
    	}
    	return n;
    }


    27 Aralık 2015 Pazar 22:42
    Yanıtlayıcı
  • Bu formu bu yüzden seviyorum. Bildiğimi zannettiğim konularda bile bir çok şey öğrenebiliyorum. Sağ olun.

    27 Aralık 2015 Pazar 23:42
  • Sen de sagol :) Cozulmustu aslinda da, aksam aksam kendime eglence yaptim.
    27 Aralık 2015 Pazar 23:43
    Yanıtlayıcı
  • List<string> l = new List<string>();
    Enumerable.Range(1,10).ForEach(l.Add("123456789".OrderBy(p=> Guid.NewGuid()).First().ToString()));
    long randomSayı = long.Parse(string.Join("",l));


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    28 Aralık 2015 Pazartesi 06:50
    Moderatör