Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

LINQ ve Foreach konusu


Öne çıkan mesajlar

Mesaj tarihi:
Oldum olası şu Linq işlerinden anlamadım pek çokda uzun süre kullanmadım. Yapmak istediğim olay şudur;

1 adet timerım var ve 10sn 'de bir çalışıyor.

Sql tablom şudur
CharID | Level | OK
200100 | 105 | 0
200101 | 101 | 0
200102 | 102 | 1
200103 | 115 | 1
200104 | 114 | 1

Bunları foreach döngüsüne sokarak her bir veri sütunu için işlem yapmak istiyorum. Ancak ve ancak olayı tam kavrayamadım. PHP'de şöyle oluyor misal;

foreach($SqlRows as $data)
{
echo $data->CharID . ' - '.$data->Level.'
';
}

Şu olayı yapmak istiyorum en basitinden linq ve c# kullanarak.
Mesaj tarihi:
obje döndürüp üzerine işlem yapacağın için linq yerine lambda kullan derim. çüünkü linq'de objenin tüm property'lerini tekrar tanımlayarak yeni bir obje yaratmak gerekecek ki kirli bir kod oluyor (bunun için extension metodlar var ama hiç girmeyeyim). IL'de ikisi de aynıdır (genel olarak).

db'de user tablonun olduğunu varsayalım;


List<User> users = new List<User> { new User() { FirstName = "Leyla", LastName = "Sukatar", Id = 1 },
new User() { FirstName = "Melis", LastName = "Canatan", Id = 2 } };

var resultLinq = from u in users
where u.FirstName == "Melis"
select new User {
FirstName = "Ahmetullah",
LastName = u.LastName,
Id = u.Id };

var resultLambda = users.Where(u => u.FirstName == "Melis").Select(u => { u.FirstName = "Ahmetullah"; return u; });
Mesaj tarihi:
Ractamainus said:

linq'de objenin tüm property'lerini tekrar tanımlayarak yeni bir obje yaratmak gerekecek


Linq dataclass'ın güncel ise (değilse zaten taşı bırak ile güncelleniyor) obje yaratırken herhangi bir tanım vermene gerek yok.


dataclass dc = new dataclass();
var chars = from c in dc.chars
select c;

foreach(var char in chars)
{
newchar.Level = 1;
}

dc.submitchange();

×
×
  • Yeni Oluştur...