为什么这项工作
this.radGridViewFiles.DataSource = null;
this.radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add").ToList());
但这给了我下面的错误
MyGlobals.ListOfItemsToControl = MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add").ToList());
“无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.Generic.List'。存在显式转换(您是否需要强制转换?)”
最佳答案
您不需要将ToList
与Where
一起使用,因为Concat将IEnumerable<TSource>
作为参数(这是Where
的返回类型,无需转换为List<TSource>
),而是在末尾使用它您的陈述并将返回结果转换为List<T>
MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add")).ToList();
之所以起作用是因为
IEnumerable<T>
的类型最有可能是DataSource
,因此可以接受object
或IEnumerable<T>
this.radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add").ToList());