【发布时间】:2021-10-22 18:36:45
【问题描述】:
我有一个对象定义为
public class MessageQueue
{
public string MsgTitle { get; set; }
public string ClientID { get; set; }
public string UserID { get; set; }
}
我有一个方法被定义为
public async Task<IEnumerable<dynamic>> DataFromDatabase()
{
// This function returns IEnumerable<dynamic>.
// The data comes from Dapper.SqlMapper.QueryMultipleAsync()
}
如何将这个方法返回的数据(即 IEnumerable)转换为 MessageQueue 类型的对象?我尝试了几个选项,包括以下选项,但在运行时仍然失败:
IEnumerable<MessageQueue> result = (IEnumerable<MessageQueue>)(IEnumerable<dynamic>)srv.DataFromDatabase().Result;
List<MessageQueue> messageQueue = (List<MessageQueue>)result.Select(o => (MessageQueueToSendRet)o);
【问题讨论】:
-
您尝试过使用 LINQ .Cast
() 吗? -
IEnumerable
结果 = srv.DataFromDatabase().Result; var messageQueue = ((IEnumerable )result).Cast ().ToList();但它给了我一个运行时错误无法将“System.Collections.Generic.List`1[System.Object]”类型的对象转换为“MessageQueue”类型。