Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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#_Asp.net_Linq - Fatal编程技术网

C# Linq查询两个数据集合时出现问题

C# Linq查询两个数据集合时出现问题,c#,asp.net,linq,C#,Asp.net,Linq,以下是我正在使用的代码: Collection<WorkOrderLabor> workOrder = new Collection<WorkOrderLabor>(); Collection<ServiceItem> serviceItems = new Collection<ServiceItem>(); serviceItems = from si in serviceItems

以下是我正在使用的代码:

        Collection<WorkOrderLabor> workOrder = new Collection<WorkOrderLabor>();
        Collection<ServiceItem> serviceItems = new Collection<ServiceItem>();

        serviceItems  = from si in serviceItems
                        join cw in workOrder on si.ServiceKey equals cw.Key
                        select new { si };

        foreach (ServiceItem item in serviceItems)
            ctrl.Items.Add(...);
Collection workOrder=new Collection();
集合serviceItems=新集合();
serviceItems=来自serviceItems中的si
将cw加入si.ServiceKey上的工作顺序等于cw.Key
选择新的{si};
foreach(serviceItems中的ServiceItem项)
ctrl.Items.Add(…);
我得到这个错误:

Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 'System.Collections.ObjectModel.Collection<ServiceItem>'
无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.ObjectModel.Collection”
我相信这是一个很容易解决的问题,但我想不出来。这背后的逻辑是,我需要根据传递给此方法的键查找工单,然后获取工单拥有的所有服务项,并对它们进行迭代,将它们放入一个组合框中。

应该是

Collection<WorkOrderLabor> workOrder = new Collection<WorkOrderLabor>();
Collection<ServiceItem> serviceItems = new Collection<ServiceItem>();

var filteredItems = from si in serviceItems
                    join cw in workOrder on si.ServiceKey equals cw.Key
                    select si;

foreach (ServiceItem item in filteredItems)
    ctrl.Items.Add(...);
Collection workOrder=new Collection();
集合serviceItems=新集合();
var filteredItems=来自serviceItems中的si
将cw加入si.ServiceKey上的工作顺序等于cw.Key
选择si;
foreach(filteredItems中的ServiceItem项)
ctrl.Items.Add(…);
您不希望从LINQ表达式返回匿名类型的
IEnumerable
,但只需返回
IEnumerable

Collection<WorkOrderLabor> workOrder = new Collection<WorkOrderLabor>();
Collection<ServiceItem> serviceItems = new Collection<ServiceItem>();

var filteredItems = from si in serviceItems
                    join cw in workOrder on si.ServiceKey equals cw.Key
                    select si;

foreach (ServiceItem item in filteredItems)
    ctrl.Items.Add(...);
Collection workOrder=new Collection();
集合serviceItems=新集合();
var filteredItems=来自serviceItems中的si
将cw加入si.ServiceKey上的工作顺序等于cw.Key
选择si;
foreach(filteredItems中的ServiceItem项)
ctrl.Items.Add(…);
您不希望从LINQ表达式返回匿名类型的
IEnumerable
,而是返回
IEnumerable