我有2个列表,我将在这些列表上执行左外部联接,如下所示:
class Item
{
public int Id { get; set; }
}
class AvailableItem
{
public bool IsAvailable { get; set; }
public Item Item { get; set; }
}
var leftList = new List<Item>(); //Then populate
var rightList = new List<Item>(): //Then populate too
var list = (from l in leftList
join r in rightList on l.Id equals r.Id into gp
from sp in gp.DefaultIfEmpty()
select new AvailableItem
{
IsAvailable = sp != null,
Item = l
}).ToList();
但是我遇到了以下异常:
'值不能为null。参数名称:inner'
仅当rightList
不为空时才引发异常。如果为空,则list
将包含leftList
中的所有项目。
我也尝试过更改行:
join r in rightlist on l.Id equals r.Id into gp
收件人:
join r in rightlist on l equals r into gp
,因为这是两个列表中的相同项目。但是,我宁愿使用Id
属性,以防万一。
但是查询仍然会引发相同的异常。
我在做什么错了?