C#集合之有序列表的用法

 更新时间:2022年04月12日 09:00:46   作者:Ruby_Lu  
这篇文章介绍了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该方法尝试获得指定键的值,如果指定的=键对应的值不存在,该方法不会抛出异常。

到此这篇关于C#集合之有序列表的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • WCF入门教程之Windows通讯接口

    WCF入门教程之Windows通讯接口

    这篇文章介绍了WCF入门教程之Windows通讯接口,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C# 静态变量与静态方法实例研究

    C# 静态变量与静态方法实例研究

    写了一个翻译英汉单词辞典的小程序,发现在调用几千次的时候速度很慢
    2011-11-11
  • C#实现FTP传送文件的示例

    C#实现FTP传送文件的示例

    这篇文章主要介绍了C#实现FTP传送文件的示例,帮助大家更好的理解和学习c#的使用,感兴趣的朋友可以了解下
    2020-12-12
  • WindowsForm移动一个没有标题栏的窗口的方法

    WindowsForm移动一个没有标题栏的窗口的方法

    这篇文章主要介绍了WindowsForm移动一个没有标题栏的窗口的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • c#中winform根据邮箱地址和密码一键发送email的实现

    c#中winform根据邮箱地址和密码一键发送email的实现

    本文主要介绍了c#winform根据邮箱地址和密码一键发送email的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • C sharp (#) 数据类型获取方式

    C sharp (#) 数据类型获取方式

    这篇文章主要介绍了C sharp (#) 数据类型获取方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C#实现过滤sql特殊字符的方法集合

    C#实现过滤sql特殊字符的方法集合

    这篇文章主要介绍了C#实现过滤sql特殊字符的方法,以实例形式分析总结了C#针对SQL危险字符的几种常用的过滤技巧,非常具有实用价值,需要的朋友可以参考下
    2015-11-11
  • Unity TextMeshPro实现富文本超链接默认字体追加字体

    Unity TextMeshPro实现富文本超链接默认字体追加字体

    这篇文章主要为大家介绍了Unity TextMeshPro实现富文本超链接默认字体追加字体示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Unity3D开发之获取所有的子对象的方法详解

    Unity3D开发之获取所有的子对象的方法详解

    这篇文章主要为大家详细介绍了三种Unity3D中获取所有的子对象(child)的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-01-01
  • C#和vb.net实现PDF 添加可视化和不可见数字签名

    C#和vb.net实现PDF 添加可视化和不可见数字签名

    本文通过C#程序代码展示如何给PDF文档添加可视化数字签名和不可见数字签名。文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论