使用键控列表对项目进行分组

时间:2013-09-02 09:38:44

标签: c# c#-4.0 windows-phone-8 winrt-xaml

我有一个用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;
        ???
    }
}

现在我想访问元素。

所以我要写的???获取项目的信息?

1 个答案:

答案 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}}