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


Pluton

Öne çıkan mesajlar

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.
Link to comment
Sosyal ağlarda paylaş

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; });
Link to comment
Sosyal ağlarda paylaş

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();

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...