C#--索引

  • 索引是一组get和set访问器,类似于属性的访问器。
  • 索引和属性在很多方面是相似的。
  • 和属性一样,索引不用分配内存来存储;
  • 索引和属性都主要被用来访问其他数据成员,这些成员和他们关联,他们为这些成员提供设置和获取访问;
  • 属性通常表示单独的数据成员;
  • 索引通常表示多个数据成员;
  • 可以把索引想象成提供获取和设置类的多个数据成员的属性,通过提供索引在许多可能的数据成员中进行选择。索引本身可以是任何类型的,不仅仅是数值类型;

使用索引时,另外还有一些注意事项如下:

  • 和属性一样,索引可以只有一个访问器,也可以两个都有;
  • 索引总是实例成员。因此索引不能被声明为static;
  • 和属性一样,实现get和set访问器的代码,不一定要关联到某个字段或者属性。这段代码可以做任何事情也可以什么都不做,只要get访问器返回某个指定类型即可。

声明索引:

声明索引的语法如此下,请注意以下几点:

  • 索引没有名称,在名称位置的是关键字this;
  • 参数列表,在方括号中间;
  • 参数列表中至少必须声明一个参数。

声明索引类似于声明属性。下图有他们的相同点和不同点:

索引的set访问器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
   public class Employee
    {
       public string FirstName;
       public string Lastname;
       public string CityOfBirth;

       /// <summary>
       /// 创建索引
       /// </summary>
       /// <param name="index"></param>
       /// <returns></returns>
       public string this[int index]
       {
           set
           {
               switch (index)
               {
                   case 0: FirstName = value; break;
                   case 1: Lastname = value; break;
                   case 2: CityOfBirth = value; break;
                   default:
                       throw new ArgumentOutOfRangeException("index");
               }
           }
           get 

           {
               switch (index)
               {
                   case 0: return FirstName;
                   case 1: return Lastname;
                   case 2: return CityOfBirth;
                   default:
                       throw new ArgumentOutOfRangeException("index");
               }
           }
       }
    }
}

时间: 2024-10-12 08:48:36

C#--索引的相关文章

MySQL 索引优化原则

一.索引优化原则 1.最左前缀匹配原则,联合索引,mysql会从做向右匹配直到遇到范围查询(>.<.between.like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整. 2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优

MySQL索引基本应用[转]

原文地址:http://www.php100.com/html/webkaifa/database/Mysql/2010/0409/4279.html 索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT N

python--15 字典:当索引不好用

字典是python唯一的影射类型 hash >>> brand = ['李宁', '耐克', '阿迪达斯'] >>> slogan = ['一切皆有可能', 'Just do it','Impossible is nothing'] >>> print('李宁的口号是:',slogan[brand.index('李宁')]) 李宁的口号是: 一切皆有可能 字典不是序列类型 ,是映射类型 字符串 列表 元组是序列类型 创建和访问索引   标志性符号--花

MongoDB 学习笔记之 TTL索引,部分索引和文本索引

TTL索引: TTL集合支持mongodb对存储的数据进行失效时间设置,经过指定的时间段后.或在指定的时间点过期,集合自动被mongod清除.这一特性有利于对一些只需要保存一定时间的数据信息进行存储,比如机器产生的事件数据.日志.会话信息等. 先创建一个集合TTLCol: 创建TTL索引,60秒过期. 60秒后查询发现数据被删除了. 部分索引: MongoDB部分索引只为那些在一个集合中,满足指定的筛选条件的文档创建索引.由于部分索引是一个集合文档的一个子集,因此部分索引具有较低的存储需求,并降

CUDA 计算线程索引的一般公式

CUDA thread index: int blockId = blockIdx.z * (gridDim.x*gridDim.y)                    + blockIdx.y * gridDim.x                    + blockIdx.x; int threadId = blockId * (blockDim.x * blockDim.y * blockDim.z)                      + threadIdx.z * (blo

检测和整理索引碎片

索引碎片的检测和整理 存储数据是为了查找数据,存储结构影响数据查找的性能.对无序数据进行查找,最快的查找算法是哈希查找:对有序数据进行查找,最快的查找算法是平衡树查找.在传统的关系型数据库中,聚集索引和非聚集索引都是平衡树(B-Tree)类型的存储结构,用于顺序存储数据,便于实现数据的快速查找.除了提升数据查找的性能之外,索引还能减少硬盘IO和内存消耗.通常情况下,硬盘IO是查找性能的瓶颈,由于索引是数据表的列的子集,这意味着,索引只存储部分列的数据,占用的硬盘空间比全部列少了很多,因此,数据库

16_索引是什么?

找数据有哪些方式? -- 全表扫描,但是当数据量达到几万以上,查询速度就慢了 什么是索引? -- 相当于书的目录,便于查找,索引指向字段, -- mysql使用 B+tree 索引,本质上是二叉树 索引有哪些分类? -- 普通:单列做索引,只能帮助查找 -- 唯一:单列增加唯一约束,只能设一个Null,也可以多列联合唯一 -- 主键:内容不允许重复,不能为Null,一张表只能有一个主键,可以多列联合主键 -- 组合:多列共同组合成索引,可以给多列增加唯一约束 -- 全文:分词,mysql依据逗号

深入浅出分析MySQL索引设计背后的数据结构

在我们公司的DB规范中,明确规定: 1.建表语句必须明确指定主键 2.无特殊情况,主键必须单调递增 对于这项规定,很多研发小伙伴不理解.本文就来深入简出地分析MySQL索引设计背后的数据结构和算法,从而可以帮你释疑如下问题: 1.为什么innodb表需要主键? 2.为什么建议innodb表主键是单调递增? 3.为什么不建议innodb表主键设置过长? B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构.使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度.B通常

mysql索引介绍

在数据表中对字段建立索引将大大提高查询的速度: 例如:select * from mytable where username='admin' 如果在列username上建立了索引,只需要一次就可以找到该记录 一.mysql索引的类型: 1.普通索引 创建:create index indexname on mytable(username) 删除:drop index [indexname] on mytable 2.唯一索引 特点:索引列值必须唯一,但允许有null值 创建:create u

mysql索引总结----mysql 索引类型以及创建

关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车.对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢.还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTREE索引. 一个简单的对比测试 以我去年测试的数据作为一个简单示例,20多条数据源随机生成200万条