foreach (peopleList.With (kişi => kişi.FirstName == "Messi")) { selectPeople.Add (kullanıcı); }LINQ ile Basitleştirilmesi - Temel seçim
Sadece LINQ kullanarak bunu basitleştirmenin herhangi bir yolu olup olmadığını merak ediyorum. Sonra
Ben sadece "Messi" 'ler içeren bir liste doldurmak için LINQ kullanmak çalışıyordu kalabalığa bak yerinegibi ... Böyle bir şey çalışıyordu ...
var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");
Listede herkesi çek olmadan ekleyebilirim. Ama planlandığı gibi çalışmıyor. Belki bu ifadeyi basitleştiren bir nokta yoktur. Ama soru LINQ bilgimi güçlendirmek için değerli görünüyordu.
Şimdi 'var var selectPeople = peopleList.Where (kişi => person.Name == "Messi") ToList() ; '' Bence bu soru gerçekten Seç ve SelectMany – baron
'SelectMany' ile her bir öğe birden çok sonuç döndürebilir ve bunları tek bir sonuç kümesinde birleştirmek için kullanılır. Örneğin. IEnumerable allChildren = person.SelectMany (kişi => person.GetChildren()); Örneğinizle buna ihtiyacınız yok. –
Ayrıca, 'Select', sorgu ifadesi yerine lambdas ile uzantı yöntemleri kullandığınızda çoğu zaman gereksizdir. Ancak, nesneyi başka bir şeye yansıtmak istiyorsanız, 'Seç'i kullanın. Örneğin, FirstName "Messi" ye eşit olduğunda bir LastNames listesi istiyorsanız, "peopleList.Where (p => p.FirstName ==" Messi ") gibi bir şey yaparsınız. (P => p.LastName) ; ', belirtilen kriterlere uyan tüm kişilerin son isimlerini temsil eden IEnumerable' ile sonuçlanmalıdır. –