Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ:在选择创建中分配事件处理程序_C#_Linq - Fatal编程技术网

C# LINQ:在选择创建中分配事件处理程序

C# LINQ:在选择创建中分配事件处理程序,c#,linq,C#,Linq,我有一个LINQ语句,它创建了许多项 From x in datasource select (Customer) new BusinessCustomer(x.SomeThing) 我需要设置BusinessCustomer.OnTapped事件处理程序 这可以在LINQ语句中完成吗?如果可以修改BusinessCustomer类,则可以添加一个构造函数,该构造函数接受OnTapped事件的处理程序委托 如果您不能或不想修改BusinessCustomer来执行此操作,您可以使用一个h

我有一个LINQ语句,它创建了许多项

From x in datasource
   select (Customer) new BusinessCustomer(x.SomeThing)
我需要设置BusinessCustomer.OnTapped事件处理程序


这可以在LINQ语句中完成吗?

如果可以修改
BusinessCustomer
类,则可以添加一个构造函数,该构造函数接受
OnTapped
事件的处理程序委托

如果您不能或不想修改
BusinessCustomer
来执行此操作,您可以使用一个helper方法,该方法还允许您消除强制转换

private Customer CreateBusinessCustomer(Thing thing, EventHandler tapHandler)
{
    var customer = new BusinessCustomer(thing);
    customer.OnTapped = tapHandler;
    return customer;
}

private void Customer_OnTapped(object sender, EventArgs e)
{
    // do something
}
现在,您的查询如下所示:

from x in datasource
select CreateBusinessCustomer(x.SomeThing, Customer_OnTapped)

不,它不能也不应该。写一个循环。添加助手方法。无论什么LINQ应该用于执行查询,而不是修改内容。