none
C# - DB den cekilen kayıtların birinci, ikinci vs. elemanıyla işlem yapma RRS feed

  • Soru

  • Merhaba,

    DB'den bir where koşuluyla çektiğim bir kayıt listesinde 1. kayıt, 2. kayıt vs ile işlem yapmak istiyorum.

    örn:

    var deneme = Model.Users.Where(a=> a.GroupId == 3 ).Select(b=> b.UserName);

    sorgusunun çıktısı 4 kayıt var diyelim.

    bunu

    dizi boyutunu count kadar vererek

    dizi[0] = Birinci kayıt

    dizi[1] = İkinci kayıt

    dizi[2] = Ucuncu kayıt

    dizi[3] = Dorduncu kayıt

    şeklinde kullanmak istiyorum.

    İkinci ve üçüncü kayıta hangi metotla veya nasıl bir yöntemle ulaşabilirim?

    teşekkürler.


    • Düzenleyen bilscrp 29 Aralık 2015 Salı 11:38
    29 Aralık 2015 Salı 11:35

Yanıtlar

  • Duruma göre :

    var deneme = Model.Users.Where(a=> a.GroupId == 3 ).Select(b=> b.UserName).ToList();

    deneme[0] //1.kayıt


    ya da

    var deneme = Model.Users.Where(a=> a.GroupId == 3 ).Select(b=> b.UserName).Skip(0).Take(1).FirstOrDefault();
    
    deneme //1.kayıt

    durum ne peki, burada yaptığımız işlemde sorgunun sonucunu belleğe alıyoruz. Eğer bu ToList() i büyük bir küme için yaparsan program çatlar ya da kasar. Küçük kümeler için böyle yapabilirsin. Ya da skip()-take() ile sayfalama usülu gidersin.


    29 Aralık 2015 Salı 11:44

Tüm Yanıtlar

  • Duruma göre :

    var deneme = Model.Users.Where(a=> a.GroupId == 3 ).Select(b=> b.UserName).ToList();

    deneme[0] //1.kayıt


    ya da

    var deneme = Model.Users.Where(a=> a.GroupId == 3 ).Select(b=> b.UserName).Skip(0).Take(1).FirstOrDefault();
    
    deneme //1.kayıt

    durum ne peki, burada yaptığımız işlemde sorgunun sonucunu belleğe alıyoruz. Eğer bu ToList() i büyük bir küme için yaparsan program çatlar ya da kasar. Küçük kümeler için böyle yapabilirsin. Ya da skip()-take() ile sayfalama usülu gidersin.


    29 Aralık 2015 Salı 11:44
  • yanıt için teşekkürler.

    kaç kayıt geleceği değişkense ne yapabilirim peki, örneğin aynı sorguda bir gün 5 kayıt bir gün 50 kayıt gelecekse, dizinin boyutunu nasıl tanımlamam daha doğru olur ve deneme[n] e kadar gitmesini sağlayabilirim?

    29 Aralık 2015 Salı 12:53
  • Kac kayit gelecegi zaten degisken, Cihan'in verdigini aynen kullanabilirsin. Bu arada, bu dizi degil List<>. Illa dizi istiyorsan ToList() yerine ToArray() kullan, her iki durumda da boyut degisken ve dinamik olarak ayarlaniyor. 

    Cihan'in dedigi, sadece, verilerin coksa bunu yapma.

    29 Aralık 2015 Salı 13:38
    Yanıtlayıcı
  • Teşekkürler
    29 Aralık 2015 Salı 14:19