Я понимаю, что лямбда-выражения можно использовать аналогично запросам LINQ для фильтрации коллекции или выбора ее элементов. Мне было интересно, можете ли вы также вызывать методы или применять что-то к элементам коллекции.
Например, если у меня есть класс с именем TrashCan
, который может содержать список Trash
элементов, например :
public class TrashCan
{
...
public List<Trash> Trash { get; set; }
public void AddTrash(Trash[] trashItems)
{
foreach (Trash trashItem in trashItems)
{
Trash.Add(trashItem);
}
}
}
Если у меня будет городской квартал, содержащий некоторое количество sh канистр, и я хочу сделать вид, что люди кладут в них какие-то sh банки, я бы хотел что-то сделать вот так:
var trashCans = new List<TrashCan>() { t1, t2, t3, t4, ..., tN };
var trashItems = new List<Trash>() { bananaPeel, beerBottle, flyer, ... };
var subTrashCans = trashCans.GetRange(3, 10);
var subTrashItems = trashItems.GetRange(5, 3);
// Normal way
foreach (var trashCan in subTrashCans)
{
trashCan.AddTrash(subTrashItems.ToArray());
}
// Lambda way?
trashCans.GetRange(3, 10).DoForEach(x => AddTrash(trashItems.GetRange(5, 3))); // Can it be done somehow?