为什么这有效
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>
这是 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());
关于c# - 将列表分配给自身并与另一个列表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21510569/