c# - 将 IEnumerable<object> 转换为 List<object>

标签 c# asp.net-mvc-5

我有以下代码:

public IList<MyObject> GetSomeData(string inputParam)
{
    var temp = repository.GetData(inputParam);
    var list = temp as List<MyObject>;
    return list;
}

repository.GetData 的返回值为IEnumerable<IMyObject>

当我查看 temp 的值时,它有 400 多条记录。当我把它放到列表中时,它就变成了 null。为什么这个转换是不可能的?

最佳答案

它返回 null 因为 IEnumerable 实际上不是一个列表。只有当 IEnumerable 恰好是 List 而不是其他类型的序列时,转换才会成功。如果您想要一个列表,您将需要创建一个新列表并将序列中的项目添加到该列表中。

关于c# - 将 IEnumerable<object> 转换为 List<object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36165309/

相关文章:

c# - 如何在asp.net core中以强类型方式获取资源字符串?

c# - File.ReadAllLines() 紧接着 File.WriteAllLines() 由于锁定导致异常

asp.net-mvc-5 - 在 MVC 5 中使用电子邮件登录

c# - TwilioRequestValidator 中的 transient System.Security.Cryptography.CryptographicException

c# - GetExternalLoginInfoAsync 的实现不同于 LiveAuthClient.GetUserId(authToken)?

c# - 如何检查游戏是否启动过一次

C# Xml Serializer 将列表反序列化为 0 而不是 null

c# - Entity Framework linq 包含和分组

asp.net-mvc - 如何扩展asp.net web api 2 用户?

ajax - ActionLink 提交模型值