我试图根据它们是否匹配LINQ Where查询来修改列表中的项目。
我试过这样做:
class Collection<T> {
public List<T> Items { get; private set; }
public Collection<T> Modify(Func<T, bool> query, Func<T, T> callback) {
Items = Items.Where(query).Select(callback).ToList();
return this;
}
}
但如果它不匹配,则会从列表中删除项目。我想跳过该项目,并将其留在列表中。我怎么能做到这一点?
答案 0 :(得分:3)
我认为你可以这样做:
Items= Items.Select(e=>query(e)?callback(e):e).ToList();