Intersecting Dictionary<string, List<Anime>> 属性 动漫 class

Intersecting Dictionary<string, List<Anime>> on a property of Anime class

我有一个这样的对象

public class Anime 
{
    public Guid Id {get; set;}
    public DateTime? CreatedOn {get; set;}

}

然后我有一个列表字典,例如

Dictionary<string, List<Anime>> myLists = new Dictionary<string, List<Anime>>();

我正在对所有列表进行交集,但我只想对 Anime ID 进行交集,但仍然得到 List<Anime> 的结果,不知道如何具体强制它在ID。这是我拥有的:

myResult.AddRange(myLists.Values.Aggregate(new HashSet<Anime>(myLists.First().Value.ToList()), (h, e) =>
                        {
                            h.IntersectWith(e);
                            return h;
                        }));

有没有办法告诉它在 ID 属性 上相交,但仍然获得动漫列表的结果? (myResultList<Anime>)。

我想列表不能包含多个具有相同 ID 的动漫。 这应该有效:

var result = myLists.Values.SelectMany(p => p)
                .GroupBy(a => a.Id)
                .Where(g => g.Count() == myLists.Values.Count)
                .Select(g => g.First());

属性 上的相交相当于 join:

myResult.AddRange(myLists.Values.Aggregate((a, l) => a.Join(l, am => am.Id, lm => lm.Id, (am, lm) => am).ToList()));