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
使用linq或lambda表达式对集合排序并分配给集合_Linq_Lambda - Fatal编程技术网

使用linq或lambda表达式对集合排序并分配给集合

使用linq或lambda表达式对集合排序并分配给集合,linq,lambda,Linq,Lambda,我必须根据另一个集合的排序顺序字段对集合进行排序。我是这样做的 var objresult = from err in ibusSoftErrors.iclbEmployerError join codvalue in lclbCodeValue on err.severity_id equals codvalue.icdoCodeValue.code_id

我必须根据另一个集合的排序顺序字段对集合进行排序。我是这样做的

var objresult = from err in ibusSoftErrors.iclbEmployerError
                            join codvalue in lclbCodeValue
                                on err.severity_id equals codvalue.icdoCodeValue.code_id
                            orderby codvalue.icdoCodeValue.code_value_order
                            select ibusSoftErrors.iclbEmployerError;
ibusSoftErrors.iclEmployerError是我将在网格中使用的集合。我的问题是,当我尝试将查询结果分配给此集合时,我遇到以下错误

无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.ObjectModel.Collection”。存在显式转换(是否缺少转换?


请帮助我使用lambda或linq对集合进行排序。

绑定通常需要IList实现

var objresult = from err in ibusSoftErrors.iclbEmployerError
                        join codvalue in lclbCodeValue
                            on err.severity_id equals codvalue.icdoCodeValue.code_id
                        orderby codvalue.icdoCodeValue.code_value_order
                        select err;
var toBind = objresult.ToList();
grid.ItemsSource = toBind;

应该这样做(假设使用WPF/Silverlight数据网格)

也许您的意思是
select err
而不是选择整个集合?:)使用
Collection
有什么具体原因吗?@Destrictor,我试过使用
select err
,但仍然出现相同的错误。@DanielHilgarth,对于我们正在使用collections的完整项目。这是准备收集和保存的常用方法。此收集对象将在不同的屏幕中使用。网格源未以相同的方法分配。UI有一个框架,负责将集合分配给网格源。所以我需要按正确的顺序排列IBusFoftErrors.ICLBEmployeeError。@SelviMoies,您的框架是否将IEnumerable转换为IList?没有vc。它将在错误下查找集合,并将其分配给数据源设置为该集合的网格。我们不能将排序结果分配回集合。像而不是
var objresult
ibusofterrors.iclbemployeerror
?我的意思是,您的linq语句返回一个IEnumerable,它不能直接绑定到控件。如果您想绑定,请将其转换为IList(通过调用ToList、ToArray…)谢谢您的建议@vc。我要试试看。