使用Linq Select时出现ArgumentNullException

时间:2019-04-12 13:40:37

标签: c# linq

我有一个自定义的Product类。我正在尝试填充该类实例的列表。为此,我正在调用ProductProxy.ProductById(id).Result来接收JObject,其中包含构造Product实例所需的信息。我能够毫无问题地构造对象,但是在尝试填充列表时收到错误消息:

  

例外:ArgumentNullException

     

无法将类型'System.Collections.Generic.List '隐式转换为'System.Collections.Generic.List '

List<string> items = new List<string>{"12345"};
List<Product> masterItemList = new List<Product>(0);
masterItemList = items.Select(id => ProductProxy.ProductById(id).Result.ToObject<Product>()).ToList();

我该如何解决?

2 个答案:

答案 0 :(得分:1)

根据@juharr的评论,我能够在ToList之前添加演员表

masterItemList = items.Select(id => ProductProxy.ProductById(id).Result.ToObject<Product>()).Cast<Product>().ToList();

答案 1 :(得分:0)

最可能ProductProxy.ProductById(id).Result返回一个null值。来自documentation

  

调用方法时,传递的参数中至少有一个为null,但不应为null。