zoukankan      html  css  js  c++  java
  • *.Net框架

      Dictionary<TKey, TValue>只为每个键支持一个值。新类Lookup<TKey, TElement>是.NET 3.5中新增的,它类似于Dictionary<TKey, TValue>,但把键映射到一个值集上。这个类在程序集System.Core中实现,用System.Linq命名空间定义。

      Lookup<TKey, TElement>不能像一般的字典那样创建,而必须调用方法ToLookup(),它返回一个Lookup<TKey, TElement>对象。

      方法ToLookup()是一个扩展方法,可以用于实现了IEnumerable<T>的所有类。

      在下面的例子中,填充了一列Racer对象。List<T>实现了IEnumerable<T>,所以可以在赛手列表上调用方法ToLookup()。这个方法需要一个Func<TSource, TKey>类型的委托,Func<TSource, TKey>类型定义了键的选择器。这里使用 表达式r=>r.Country,根据国家来选择赛手。Foreach循环只使用索引器访问来自奥地利的赛手,代码如下:

    List < Racer > racers = new List < Racer > ();
    racers.Add(new Racer("Jacques", "Villeneuve",
    "Canada", 11));
    racers.Add(new Racer("Alan", "Jones",
    "Australia", 12));
    racers.Add(new Racer("Jackie", "Stewart",
    "United Kingdom", 27));
    racers.Add(new Racer("James", "Hunt",
    "United Kingdom", 10));
    racers.Add(new Racer("Jack", "Brabham",
    "Australia", 14));
    
    Lookup < string, Racer > lookupRacers =
    (Lookup < string, Racer > )
    racers.ToLookup(r = > r.Country);
    
    foreach (Racer r in lookupRacers["Australia"])
    {
        Console.WriteLine(r);
    }

    结果显示出来自奥地利的赛手:

    Alan Jones
    Jack Brabham

    分组数据类型IGrouping接口:

    复制代码
    namespace System.Linq
    { 
        public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnumerable
        {
            TKey Key { get; }
        }
    
      public interface ILookup<TKey, TElement> : IEnumerable<IGrouping<TKey, TElement>>, IEnumerable
        {
            IEnumerable<TElement> this[TKey key] { get; }
            int Count { get; }
            bool Contains(TKey key);
        }
    }

    参考

      [1] book.51cto.com,Lookup类

  • 相关阅读:
    [LeetCode] Container With Most Water
    [LeetCode] Sort List 排序 sort
    c/c++: c++函数返回类型什么情况带const
    [LeetCode] Restore IP Addresses 回溯
    [LeetCode] Binary Tree Inorder Traversal 中序排序
    [LeetCode] Evaluate Reverse Polish Notation stack 栈
    [acmm week12]染色(容斥定理+组合数+逆元)
    [acmm week12]二分+dp+单调队列
    [csp-201809-3]元素选择器-编译原理
    [csp-201709-3]JSON查询-编译原理
  • 原文地址:https://www.cnblogs.com/ybtools/p/6525862.html
Copyright © 2011-2022 走看看