zoukankan      html  css  js  c++  java
  • C#集合之有序列表

      如果需要基于键对所需集合排序,就可以使用SortedList<TKey,TValue>类。这个类按照键给元素排序。这个集合中的值和键都可以使用任何类型。定义为键的自定义类型需要实现IComparer<T>接口,用于给列表中的元素排序。
      使用构造函数创建一个有序列表,在用Add方法添加:
        var books = new SortedList<string, string>();
        books.Add("Professional WPF Programming", "978–0–470–04180–2");
        books.Add("Professional ASP.NET MVC 3", "978–1–1180–7658–3");
      还可以使用索引器将元素添加到列表中
        books["Beginning Visual C# 2010"] = "978–0–470-50226-6";
        books["Professional C# 4 and .NET 4"] = "978–0–470–50225–9";
        SortedList<TKey,TValue>有多个重载版本的构造函数。

      可以使用foreach语句遍历列表,枚举器返回的元素是KeyValuePair<TKey,TValue>类型,其中包含了键和值:
        foreach (KeyValuePair<string, string> book in books)
        {
          Console.WriteLine("{0}, {1}", book.Key, book.Value);
        }
      迭代语句会按键的顺序显示:
        Beginning Visual C# 2010, 978–0–470-50226-6
        Professional ASP.NET MVC 3, 978–1–1180–7658–3
        Professional C# 4 and .NET 4, 978–0–470–50225–9
        Professional WPF Programming, 978–0–470–04180–2

      也可以使用Values和Keys属性访问值和键:
        foreach (string isbn in books.Values)
        {
          Console.WriteLine(isbn);
        }

        foreach (string title in books.Keys)
        {
          Console.WriteLine(title);
        }

      如果尝试使用索引器访问一个元素,但传递的键不存在,就会抛出异常。ContainsKey()方法,可以判断所传递的键是否存在于集合中。TryGetValue该方法尝试获得指定键的值,如果指定的=键对应的值不存在,该方法不会抛出异常。

  • 相关阅读:
    可遇不可求的Question之无法加载 DLL
    可遇不可求的Question之mysql odbc 5.1 driver 指定驱动程序无法加载
    可遇不可求的Question之Got error 127 from table handler
    可遇不可求的Question之Odbc与MYSQLCLIENT转码机制探讨
    【转】Task Scheduler Managed Wrapper: 由程式來排程工作
    可遇不可求的Question之update from 语法
    【转】Long Time Operations in ASP.NET
    可遇不可求的Question之System.TypeLoadException错误
    浅谈Asp.Net中涉及到的四个TimeOut属性
    4月2号
  • 原文地址:https://www.cnblogs.com/afei-24/p/6830376.html
Copyright © 2011-2022 走看看