【发布时间】:2021-09-30 09:22:47
【问题描述】:
我有一个实体列表,我想检查其中有多少是某些属性所共有的。 所以我用了字典
List<Letter> allPsukim = await _context.Letter.Where(a => a.OrderId == Order.Id)
.ToListAsync();
foreach (var item in allPsukim)
{
Psukim newPasuk = new Psukim()
{
Book = item.Book,
Pasuk = item.Pasuk,
Perek = item.Perek
};
if (showPsukim.ContainsKey(newPasuk))
{
List<int> newList = showPsukim[newPasuk];
newList.Add(item.Position);
showPsukim[newPasuk] = newList;
}
else
{
List<int> newList = new List<int>() { item.Position };
showPsukim.Add(newPasuk, newList);
}
}
问题是showPsukim.ContainsKey(newPasuk) 总是显示不存在密钥。
在哪里可以使用实体作为键并检查它是否存在?
【问题讨论】:
-
如果你总是 "new Psukim ()" ,那将是一个新键
-
想一想,实际的“作为字典键的自定义对象”与此 Q 不重复。这个问题将不胜感激,因为拥有“好”键比较器可能不是最好的解决方案。
标签: c#