我创建了一个Command
有两个重要成员的类.
public class Command
{
public string Name { get; set; }
public CommandExecutedCallback Callback { get; set; }
public delegate void CommandExecutedCallback(Command command);
}
Run Code Online (Sandbox Code Playgroud)
我在a中保存了这个类的多个对象List<Command>
.
另一个类CommandProcessor
有一个成员函数GetCallbacks(string name)
.
我想使用lambda表达式来获取具有CommandExecutedCallback
名称匹配条件的-delegates 数组.
我可以通过以下方式获得所有回调:return commandList.Select(t => t.Callback).ToArray()
.
如何插入条件以仅获取具有指定名称的命令?
先感谢您.
你需要添加一个Where
条件:
return commandList.Where(t => t.Name == name).Select(t => t.Callback);
Run Code Online (Sandbox Code Playgroud)
ToArray
除非你真的需要,否则你也应该避免打电话.除非您专门将此数据传递给需要数组的其他方法,否则复制所有数据ToArray
可能是不必要的(而且相当昂贵)操作.
归档时间: |
|
查看次数: |
12823 次 |
最近记录: |