我有一个用C#编写的小类来保存一个数据结构列表,其中包含一个特殊键来组项。
public class KeyedList<TKey, TItem> : List<TItem>
{
public TKey Key { protected set; get; }
public IEnumerable<TItem> Items { protected set; get; }
public KeyedList(TKey key, IEnumerable<TItem> items)
: base(items)
{
Key = key;
Items = items;
}
public KeyedList(IGrouping<TKey, TItem> grouping)
:base (grouping)
{
Key = grouping.Key;
???
}
}
现在我想访问元素。
所以我要写的???获取项目的信息?
答案 0 :(得分:0)
首先,您根本不应存储Items,因为它们已由基类处理:List<TItem>
。
但如果你真的想这样做,你可以直接grouping
Items
IGrouping<TKey, TItem>
,因为IEnumerable<TItem>
实现了public KeyedList(IGrouping<TKey, TItem> grouping)
:base (grouping)
{
Key = grouping.Key;
Items = grouping;
}
:
Items
您还可以将KeyedList
属性指向List<TItem>
实例本身,因为它实现了public KeyedList(IGrouping<TKey, TItem> grouping)
:base (grouping)
{
Key = grouping.Key;
Items = this;
}
:
{{1}}