有没有一种优雅的方法将 IDictionary<int,IEnumerable<int>>
转换为 ILookup<int,int>
?据我所知,它们应该是相同的,但我认为查找表更清晰。
背后的故事更加复杂,但我被迫选择具有其相关 id 列表的 id 列表:
masters
.Select(m => new {masterId = m.Id, childIds = m.Children.Select(c => c.Id)})
.ToDictionary(k => masterId, v => v.childIds)
我很乐意直接选择查找功能,但我不知道是否可能。
主变量类型的示例可以简单地如下:
public class Master
{
public int Id { get; set; }
public List<Master> Children { get; set; }
}
masters.ToLookup(m => m.Id, m => m.Children.Select(c => c.Id));
- Dennis