fla*_*kes 1 c# lambda observablecollection
对于我的场景,我有List<T> removable我正在使用从我的变量中删除项目ObservableCollection<T> collection.我不相信我可以在Except这里使用这个方法,因为我需要collection创建更改事件.
removable.ForEach(profile => collection.Remove(profile));
Run Code Online (Sandbox Code Playgroud)
是否有更好的语法将函数作为Action参数传递?在Java中,我只是传递方法:
removable.stream().forEach(collection::remove);
Run Code Online (Sandbox Code Playgroud)
在Java中,如果函数的签名匹配,则可以传递函数,就像在C#中一样,所以不,如果函数签名不相同,就像在Java中一样,没有更好的方法.
但是,您始终可以创建一个扩展来接受任何返回类型,如下所示:
public static class Extensions
{
public static void ForEach<TIn, TOut>(this List<TIn> TheCollection, Func<TIn, TOut> ProcessFunction)
{
TheCollection.ForEach((item) => ProcessFunction(item));
}
}
Run Code Online (Sandbox Code Playgroud)
那你可以做
removable.ForEach<string, bool>(collection.Remove);
Run Code Online (Sandbox Code Playgroud)
这不是更快,但更具可读性.