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

时间:2013-05-14 07:47:39

标签: linq lambda

我必须根据另一个集合中的排序顺序字段对集合进行排序。我是按照以下方式做到的。

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.iclbEmployerError是我将在网格中使用的集合。我的问题是当我尝试将查询结果分配给此集合时,我收到以下错误。

无法隐式转换类型'System.Collections.Generic.IEnumerable<>'到'System.Collections.ObjectModel.Collection<>'。存在显式转换(您是否缺少演员?)

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

1 个答案:

答案 0 :(得分:0)

绑定通常需要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数据网格)