【发布时间】:2019-12-29 18:50:50
【问题描述】:
我有以下代码:
var aaData = myapi.GetData().AsEnumerable().Select(x => new {
Id = x["myID"],
Desc = x["myDesc"]
});
尝试执行以下操作
aaData = aaData.OrderBy((string.Join(",", request.Order
.Select(x => request.Columns[x.Column].Data + " " + x.Dir))));
得到错误:
CS0266 无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Data.EnumerableRowCollection”。存在显式转换(您是否缺少演员表?)
如何解决这个问题?
GetData 返回一个数据表
Request 是一个具有属性的对象:
public OrderCol[] Order { get; set; }
OrderCol 是
public class OrderCol {
public int Column { get; set; }
public string Dir { get; set; }
}
感谢您的帮助。
上面的代码适用于我返回 List 而不是 DataTable 的情况。该错误表明需要 Cast 并且它似乎是 DataTable.AsEnumerable 设置为 EnumerableRowCollection 的方式
可以使用模拟数据表来模拟上述情况
DataTable dt = new DataTable();
dt.clear();
dt.Columns.Add("myID");
dt.Columns.Add("myDesc");
【问题讨论】:
-
什么是
myapi.GetData(),什么是request? -
请给我们'myapi.GetData()'和'request'的数据结构。
-
抱歉,GetData 返回一个DataTable。
-
还有
Request? -
编辑了我原来的帖子。希望它现在拥有所有必要的信息
标签: linq datatable ienumerable asenumerable