我创建了一个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可能是不必要的(而且相当昂贵)操作.