为什么这样做
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'。存在显式转换(您是否错过了转换?)”
答案 0 :(得分:2)
您不需要将ToList
与Where
一起使用,因为Concat将IEnumerable<TSource>
作为参数(这是Where
的返回类型,不需要转换为List<TSource>
),而是将其用于语句的结尾,并将返回的结果转换为List<T>
IEnumerable<T>
MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add")).ToList();
这是有效的,因为DataSource
的类型最有可能object
。因此接受IEnumerable<T>
或List<T> or any other type.
this.radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add").ToList());