Aşağıdaki foreach linq ifadesine nasıl dönüştürülür?Foreach ifadesini linq ifadesine nasıl dönüştürebilirim?
var list = new List<Book>();
foreach (var id in ids)
{
list.Add(new Book{Id=id});
}
Aşağıdaki foreach linq ifadesine nasıl dönüştürülür?Foreach ifadesini linq ifadesine nasıl dönüştürebilirim?
var list = new List<Book>();
foreach (var id in ids)
{
list.Add(new Book{Id=id});
}
Oldukça yalındır var:
var list = ids.Select(id => new Book { Id = id }).ToList();
Yoksa sorgu sözdizimi isterseniz:
var list = (from id in ids select new Book { Id = id }).ToList();
Ayrıca eğer gerçekten List<Book>
gerekiyorsa ToList()
sadece gerekli olduğunu unutmayın. Aksi takdirde, Linq'in temkinli değerlendirme yeteneklerinden yararlanmak ve Book
nesnelerin sadece talep üzerine oluşturulmasına izin vermek daha iyidir.
Bu LINQ sözdizimini istemese de. 'ids içindeki x'den yeni bir kitap seçin {Id = x}' LINQ gibi daha fazla hissediyor. –
@RandRandom Bu kesinlikle LINQ sözdizimi, sorgu sözdiziminin tersine sadece LINQ yöntemi sözdizimi. Ancak, her ikisi de hala (bu durumda), Linq-to-objects kullanmaktadır. Bkz. Http://msdn.microsoft.com/en-us/library/bb397947.aspx –
@RandRandom Tamlık için eklenmiş sorgu sözdizimi. –
var list = ids.Select(id => new Book(id)).ToList();
Kitabın böyle bir yapıcı olması durumunda budur. – VahidNaderi
Bir linq ifadesi gibi basit bir deyim yazmak için herhangi bir sebep var mı? Bir foreach olarak muhtemelen daha okunaklı. – Mephy
Resharper sizin için tek tıklama ile yapar :-) –