首页 > 其他分享 >索引器

索引器

时间:2024-10-18 11:21:29浏览次数:3  
标签:index 索引 new rectangles public Rectangle

基础概念

索引器,将一个对象变的可以像数组一样使用下标访问,索引器的创建类似属性,都需要设置Get和Set方法。
创建格式:

type this[int index]
{
   // get 访问器
   get
   {
      // 返回 index 指定的值
   }

   // set 访问器
   set
   {
      // 设置 index 指定的值
   }
}

注意事项

  • 属性的各种用法同样适用于索引器。 此规则的唯一例外是“自动实现属性”。 编译器无法始终为索引器生成正确的存储。
  • 只要每个索引器的参数列表是唯一的,就可以对一个类型定义多个索引器。

代码示例

IndexNames类创建了基本的索引器,索引器内部对rectangles列表进行操作。

public class IndexNames
{

    public List<Rectangle> rectangles = new List<Rectangle>();

    public Rectangle this[int index]
    {
        get
        {
            if(this.rectangles[index] != null)
            {
                Rectangle r = rectangles[index];
                return r;
            }
            return null;
        }

        set
        {
            if (index > 0 && index < rectangles.Count)
            {
                rectangles[index] = value;
            }
        }
    }

    public IndexNames()
    {
        this.rectangles.Add(new Rectangle(10, 10));
        this.rectangles.Add(new Rectangle(20, 20));
        this.rectangles.Add(new Rectangle(30, 30));
        this.rectangles.Add(new Rectangle(40, 40));
    }
}

上面代码提到的Rectangle类

public class Rectangle
{
    // 成员变量
    protected double length;
    protected double width;
    public double Test;
    public Rectangle(double l, double w)
    {
        length = l;
        width = w;
    }
    [DeBugInfo(55, "Zara Ali", "19/10/2012",
    Message = "Return type mismatch")]
    public double GetArea()
    {
        return length * width;
    }
    [DeBugInfo(56, "Zara Ali", "19/10/2012")]
    public void Display()
    {
        Console.WriteLine("Length: {0}", length);
        Console.WriteLine("Width: {0}", width);
        Console.WriteLine("Area: {0}", GetArea());
    }

    public void GetString()
    {
        Debug.Log($"Length:{length}width:{width}Area:{GetArea()}");
    }
}

表现

循环输出索引的内容

        IndexNames indexs = new IndexNames();

        for (int i = 0; i < indexs.rectangles.Count; i++)
        {
            indexs[i].GetString();
        }

输出:

总结

只要类中有类似于属性的元素就应创建索引器,此属性代表的不是一个值,而是值的集合,其中每一个项由一组参数标识。 这些参数可以唯一标识应引用的集合中的项。 索引器延伸了属性的概念,索引器中的一个成员被视为类外部的一个数据项,但又类似于内部的一个方法。 索引器允许参数在代表项的集合的属性中查找单个项。

标签:index,索引,new,rectangles,public,Rectangle
From: https://www.cnblogs.com/comradexiao/p/18473919

相关文章

  • ES(IK,索引)
    IK分词器Elasticsearch的关键就是倒排索引,而倒排索引依赖于对文档内容的分词,而分词则需要高效、精准的分词算法,IK分词器就是这样一个中文分词算法。1.在线安装dockerexec-ites./bin/elasticsearch-plugininstallhttps://github.com/medcl/elasticsearch-analysis-ik/r......
  • Mongodb 性能监控工具FreeMonitoring,mongostat,mongotop,Profiler,索引,分片,事务超时,Mongo
    db.users.createIndex({username:'hashed'})1#创建唯一索引db.values.createIndex({title:1},{unique:true})2#复合索引支持唯一性约束db.values.createIndex({title:1,type:1},{unique:true})3#多键索引支持唯一性约束db.inventory.createIndex({ratings:1},{uni......
  • 【MYSQL学习】MySQL索引:删除索引的5大绝招你GET到了吗?
    ......
  • Elasticsearch底层的倒排索引技术是什么?
    倒排索引倒排索引的概念是基于MySQL这样的正向索引而言的。技术应用在Elasticsearch,得益于倒排索引,用来实现高性能的搜索功能正向索引例如有一张名为tb_goods的表:idtitleprice1小米手机34992华为手机49993华为小米充电器494小米手环49............
  • 倒排索引及ES相关概念对比MySQL
    一、倒排索引1、先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引2、对搜索内容进行分词,分词后得到一个关键词列表,根据关键词去词条库中匹配,在找对应的文档ID列表3、然后根据文档ID列表,找到对应的文档信息对比:   二、ES相关概念对比My......
  • 倒排索引
    什么是倒排索引倒排索引(InvertedIndex)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key。倒排索引的结构倒排索引通常包含两个主要部分:词项字典(TermDictionary):存储所有词项及其相关信息(如词频、位置等)。倒排列表(Posting......
  • 使用博查Web Search API获取搜索引擎的网页链接和文本摘要,给AI/RAG应用增加联网搜索功
    为什么需要WebSearchAPI?各类AINative应用、RAG应用、AIAgent智能体在开发过程都会遇到联网获取互联网网页信息的需求,此时需要得到原始网页链接以及文本摘要,以用于给pipeline中的大模型作为上下文总结使用。但目前仅国外的搜索引擎例如Bing、Google提供此类WebSearch......
  • elasticsearch之倒排索引
    倒排索引elasticsearch有如此高的搜索性能,无异于使用了倒排索引。倒排索引中有两个重要的概念:文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我......
  • 倒排索引
    倒排索引:‌倒排索引(InvertedIndex)‌是一种索引方法,主要用于存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是由属性值来确定记录的位置,而不是由记录来确定属性值,因此被称为倒排索引。倒排索引被广泛应用于‌文档检索系统中,是文档检索系统中常用的数据结......
  • 软件测试笔记|数据库基础|创建索引的原则
    创建数据库索引有以下原则:一、选择合适的列创建索引1.选择经常用于查询条件的列:如果某一列经常在WHERE子句中作为条件出现,那么为该列创建索引可以大大提高查询速度。例如,在一个员工表中,如果经常根据员工的姓名进行查询,那么为“姓名”列创建索引是一个不错的选择。2.选择......