List<T>对元素的查找。

摘要:
要在List<T>中查找特定元素,可以使用Containers()、IndexOf()、LastIndexOf()和BinarySearch()方法。除了LastIndexOf(),它从最后一个元素开始,所有其他元素都从第一个元素开始并检查每个元素,直到找到目标元素。集合类不要求集合中的所有元素都是唯一的。BinarySearch()使用了一种更快的二进制搜索算法,但它要求元素已经排序。BinarySearch()有一个有用的函数室。如果找不到元素,它将返回一个负整数。intsearch;列表<string>List=newList<string>(){“public”,“private”,“protected”};list.Sort();//排序搜索=列表。在使用BinarySearch()之前进行BinarySearch;如果{list.Inter;//搜索按位反转,即应该插入元素的位置}foreach//遍历输出Console。WriteLine;Console.ReadKey();结果是:

      要在List<T>中查找特定的元素,可以使用Contains() 、IndexOf()、LastIndexOf()和BinarySearch()方法。除了

LastIndexOf()是从最后一个元素开始以外,其他的都是从第一个元素开始搜索,检查每一个元素,直到发现目标元素。集合类不要求集合中所有的元素都是唯一的。假如集合中有两个或者多个元素相同。则IndexOf()返回的是第一个索引。LastIndexOf()返回的是最后一个索引。

      BinarySearch()采用的是快得多的二分搜索算法,但它要求元素已经排好序了。

  BinarySearch()有一个有用的功能室假如元素没有找到,它会返回一个负整数。该值按位取反的(~)的结果是“大于被查找元素的下一个元素”的索引,假如没有更大的值,则是元素的整数,这样一来,就可以在列表的特定位置方便的插入新值,同时还保持已排序状态。
            int search;
            List<string> list = new List<string>() { "public","private","protected"};
            list.Sort();                                                               //使用BinarySearch()之前要先排序
            search = list.BinarySearch("protected internal");
            if (search < 0)
            {
                list.Insert(~search, "protected internal");           //search按位取反后,就是要插入元素应该在的位置
            }
            foreach (string item in list)                                     //遍历输出
                Console.WriteLine(item);
            Console.ReadKey();

结果是:

List&lt;T&gt;对元素的查找。第1张

免责声明:文章转载自《List&amp;lt;T&amp;gt;对元素的查找。》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JS在与lua的交互心得(转)WebService的事务处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

hash函数查找和ASL计算

   Hash表的“查找成功的ASL”和“查找不成功的ASL” ASL指的是 平均查找时间 关键字序列:(7、8、30、11、18、9、14) 散列函数: H(Key) = (key x 3) MOD 7 装载因子: 0.7 处理冲突:线性探测再散列法 查找成功的ASL计算方法: 以下求解过程是按照“计算机统考的计算方法”,不同的老师、教材在“处理冲突”...

SQL Server索引

SQL Server索引解析 https://www.cnblogs.com/michaeldonghan/p/index001.html 全文章节: 1.聚集索引和非聚集索引 2.索引的结构 3.索引包含列和书签查找 1.聚集索引和非聚集索引 索引分为聚集索引和非聚集索引 1)聚集索引:表的数据是存储在数据页中(数据页的PageType标记为1),Sql...

C++(四十八) — string容器的基本操作

参考博客:https://blog.csdn.net/qq_37941471/article/details/82107077 https://www.cnblogs.com/danielStudy/p/7127564.html#top 1、声明一个字符串 标准库类型string表示可变长的字符序列,为了在程序中使用string类型,我们必须包含头文件:#...

算法导论:Trie字典树

1、 概述  Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。  Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”。  Trie树可以利用字符串的公共前缀来节约存储空间。如下图所示,该trie树用10个节点保存了...

块状链表[ext/rope]

2008年OI集训论文上有介绍<对块状链表的一点研究>,其主要是结合了链表和数组各自的优点,链表中的节点指向每个数据块,即数组,并且记录数据的个数,然后分块查找和差入。在g++头文件中,<ext/rope>中有成型的块状链表,在using namespace __gnu_cxx;空间中,其操作十分方便。 基本操作: rope lis...

优化查找和排序

优化查找和排序 C++程序会进行许多查找操作。从编程语言的编译器到浏览器,从控制链表到数据库,许多反复进行的程序活动都会在某个内部的循环底层进行查找操作。就经验而言,查找操作通常会出现在热点函数的列表中。因此我们需要特别注意查找操作的效率。 使用std::map和std::string的键值对表 使用std::map创建表是一个例子,它向我们展示了C++标...