为什么这项工作

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'。存在显式转换(您是否需要强制转换?)”

最佳答案

您不需要将ToListWhere一起使用,因为ConcatIEnumerable<TSource>作为参数(这是Where的返回类型,无需转换为List<TSource>),而是在末尾使用它您的陈述并将返回结果转换为List<T>

MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add")).ToList();


之所以起作用是因为IEnumerable<T>的类型最有可能是DataSource,因此可以接受objectIEnumerable<T>

this.radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl.Concat(MyGlobals.lstNewItems.Where(i => i.sItemRequestStatus == "Add").ToList());

10-07 16:29