none
Arraylist dizi ile birbirinden farklı random atama RRS feed

  • Soru

  • Merhabalar 

    arraylistin içine metinler atayarak bir listboxtan bir listboxa birbirinden farklı random metinler atamak istiyorum fakat yapamıyorum ya indis numarasını listbox yazıyor yada birbiri ile aynı randomlar içinde bulunuyor yardımcı olursanız sevinirim.

    Teşekkürler.



    • Düzenleyen decobrayy 16 Aralık 2015 Çarşamba 12:56
    16 Aralık 2015 Çarşamba 12:55

Yanıtlar

  • Random r = new Random(Guid.NewGuid().GetHashCode());
    Dogrusunu istersen, tekrarlaniyor derken ne demek istediini anlamak mumkun degil. Sonucta sonlu degerlerden uretiliyor. Daha simdi N kere denedim, 100,000 sayida cakisan maksimum 4 oldu. Bunu istemiyorsan, GUID gibi bir sey kullan.
    19 Aralık 2015 Cumartesi 19:17
    Yanıtlayıcı
  • Güzel kardeşim daha önce yanıtladık. Listeyi Guid ile sıralayıp karıştırabilirsin, böylece rastgele sıralanmış olur. Beş tane lazımsa Take ile 5 tane alırsın.

    var karışıkListe = liste.OrderBy(p=> Guid.NewGuid()).Take(5);
    bu sana liste içindeki elemanlardan rastgele farklı 5 adet eleman verir.


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

    20 Aralık 2015 Pazar 05:44
    Moderatör
  • stringleri listbox a aktardıktan sonra listeden kaldırıp aralığı tekrar belirlersen sorunun çözülür diye düşünüyorum

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

    20 Aralık 2015 Pazar 10:11

Tüm Yanıtlar

  • ArrayList linq extension destekliyormu bilmiyorum, muhtemelen destekliyordur;

    var karışıkListe = liste.OrderBy(p=> Guid.NewGuid());



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

    16 Aralık 2015 Çarşamba 13:02
    Moderatör
  • ArrayList linq extension destekliyormu bilmiyorum, muhtemelen destekliyordur;

    var karışıkListe = liste.OrderBy(p=> Guid.NewGuid());



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

    hocam ilginiz için teşekkürler fakat aradığım bu değil :( ben birazdaha açayım yaptığım programı ben bir kura programı yapıyorum takımları textboxtan 5 adet listbox'a aktarıyorum (önce diziye sonra listbox) sonra buton vasıtasıyla random bir şekilde başka bir listbox aktarmak istiyorum fakat beceremiyorum
    16 Aralık 2015 Çarşamba 13:08
  • merhabalar ben random olacak ve birbirinden farklı olmasını sağlamayalıyım nasıl yapabilirim ?
    19 Aralık 2015 Cumartesi 10:33
  • Random r = new Random();
    19 Aralık 2015 Cumartesi 12:21
    Yanıtlayıcı
  • Randomun nasıl oluşturulacağını biliyorum fakat birbiri ile aynı değerler tekrarlanıyor tekrarlanmamasını sağlamam lazım. 

    teşekkürler...

    19 Aralık 2015 Cumartesi 14:57
  • Random r = new Random(Guid.NewGuid().GetHashCode());
    Dogrusunu istersen, tekrarlaniyor derken ne demek istediini anlamak mumkun degil. Sonucta sonlu degerlerden uretiliyor. Daha simdi N kere denedim, 100,000 sayida cakisan maksimum 4 oldu. Bunu istemiyorsan, GUID gibi bir sey kullan.
    19 Aralık 2015 Cumartesi 19:17
    Yanıtlayıcı
  • Güzel kardeşim daha önce yanıtladık. Listeyi Guid ile sıralayıp karıştırabilirsin, böylece rastgele sıralanmış olur. Beş tane lazımsa Take ile 5 tane alırsın.

    var karışıkListe = liste.OrderBy(p=> Guid.NewGuid()).Take(5);
    bu sana liste içindeki elemanlardan rastgele farklı 5 adet eleman verir.


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

    20 Aralık 2015 Pazar 05:44
    Moderatör
  • Anlatamadığım için özür dilerim şunu demek istiyorum benim arraylist'imde 40 adet string değer var ve ben bunu 5 adet listbox'a rastgele şekilde 4 4 4 4 ayırıcam fakat bazı listboxlarda aynı string değerler oluşuyor bunun oluşmamasını sağlamam lazım inşallah anlatabilmişimdir yinede verdiğiniz cevaplar için teşekkür ederim. :)
    20 Aralık 2015 Pazar 10:00
  • stringleri listbox a aktardıktan sonra listeden kaldırıp aralığı tekrar belirlersen sorunun çözülür diye düşünüyorum

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

    20 Aralık 2015 Pazar 10:11
  • Beni de yaniltmissin, olayin Random ile ilgisi yok, OrderBy( o => Guid.NewGuid()). 

    void Main()
    {
      string[] originalListe = new string[20];
      
      for (int i = 0; i < 20; i++)
      {
        originalListe[i] = "String#"+i;
      }
      var karisik = originalListe.OrderBy(l => Guid.NewGuid()).ToList();
      
      List<List<string>> listboxlar = new List<List<string>>();
      for (int i = 0; i < 5; i++)
      {
        listboxlar.Add( karisik.Skip( i*4 ).Take(4).ToList() );
      }
      
      listboxlar.Dump();
    }

    Not: ArrayList tarih oncesinde kaldi. 2.0 ciktigindan beri ArrayList'in esprisi yok.
    21 Aralık 2015 Pazartesi 11:29
    Yanıtlayıcı