C#索引器与数组的区别
1.索引器的索引值类型不限定为整数
2.索引器允许重载
3.索引器不是一个变量
4.索引器以函数签名方式this标识,而属性采用名称来标识,名称可以任意
5.索引器不能使用static来进行声明,属性可以。索引器永远属于实例成员,因此不能声明为static。
using System;
using System.Collections.Generic; namespace 编码练习
{
public class Student {
public string Name { get;set;}
public int CourseID { get; set; }
public int Score { get; set; } }
public class FindScore
{
private List<Student> student { get; set; }
public FindScore()
{
student = new List<Student>();
}
public int this[string name,int courseid] {
get {
var s = student.Find(x=>x.Name== name&&x.CourseID==courseid);
if (s!=null)
{
return s.Score;
}
return -;
}
set {
student.Add(new Student() {Name=name,CourseID=courseid,Score=value });
}
}
//搜索
public List<Student> this[string name]
{
get
{
List<Student> liststudents = student.FindAll(x => x.Name == name);
return liststudents;
}
} public static void Main() {
FindScore fstudent = new FindScore();
fstudent["zhangsan", ] = ;
fstudent["zhangsan", ] = ;
fstudent["lisi", ] = ;
fstudent["zhangsan", ] = ;
//查询李四的成绩
Console.WriteLine("李四 课程编号2 成绩为:" + fstudent["lisi", ]);
//查找张三的成绩
List<Student> student = fstudent["zhangsan"];
int result = ;
if (student.Count > )
{
foreach (var s in student)
{
Console.WriteLine(string.Format("张三 课程编号{0} 成绩为:{1}", s.CourseID, s.Score));
result += s.Score;
}
Console.WriteLine(string.Format("张三的平均分为{0}:", result / ));
} else {
Console.WriteLine("查无此人");
} }
}
}
C#索引器与数组的区别的更多相关文章
- C# 索引器使用总结
1.索引器(Indexer): 索引器允许类或者结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于他们的访问采用参数. 最简单的索引器的使用 /// <summary> ...
- C# 索引器 学习
转载原地址: http://www.cnblogs.com/lxblog/p/3940261.html 1.索引器(Indexer): 索引器允许类或者结构的实例按照与数组相同的方式进行索引.索引器类 ...
- C#索引器-有参属性
总结 只要类中有类似于属性的元素就应创建索引器,此属性代表的不是一个值,而是值的集合,其中每一个项由一组参数标识. 这些参数可以唯一标识应引用的集合中的项. 索引器延伸了属性的概念,索引器中的一个成员 ...
- C# 中常用的索引器
使用 C# 中的索引器和 JavaScript 中访问对象的属性是很相似. 之前了解过索引器,当时还把索引器和属性给记混了, 以为索引器就是属性,下面写下索引器和属性的区别,以及怎么使用索引器 先说明 ...
- C#中索引器Indexer的学习使用
索引器 顾名思义,是用来索引的,那么C#中索引器是用来索引什么的呢 首先我们知道,C#中的数组是本身就可以索引的,那么C#中的类和结构呢,类和结构的实例是无法索引的,如果我们想让C#中类或者结构的实例 ...
- C#索引器
索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的. 索引器和数组比较: (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 ...
- C#索引器一
索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的. 索引器和数组比较: (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 ...
- 【C#】索引器
索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的. 索引器和数组比较: (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 ...
- C#索引器的作用及使用
1. 作用: 可以使得类和实例能够像数组那样使用一样,又称为带参属性 2. 区分 (1)索引器与数组的比较: 索引器的索引值不受类型限制.用来访问数组的索引值一定是整数,而索引器可以是其他类型的索引值 ...
随机推荐
- LeetCode初级算法--链表01:反转链表
LeetCode初级算法--链表01:反转链表 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/ ...
- eclipse常用快捷键即项目操作
快捷键: 1.代码提示:Alt+/ 2.撤销上一步操作:Ctrl+z:取消撤销:Ctrl+y: 3.如何注销一整段代码?☞▲第一种注释方法是每行代码前加//:先选中,然后按Ctrl+/:取消注销方法一 ...
- Java学习之面试题整理
1,java 基本数据类型有几种?哪几种?(面试题) 8种 byte short int long float double char boolean 2,int类型是几个字节?(面试题) 4字节 3 ...
- 简单使用OpenSSL生成密钥
一.生成自签名证书 1.1.创建root CA私钥 openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 ...
- Leetcode(5)最长回文子串
Leetcode(4)寻找两个有序数组的中位数 [题目表述]: 给定一个字符串 s,找到 s 中 最长 的回文子串.你可以假设 s 的最大长度为 1000.' 第一种方法:未完成:利用回文子串的特点 ...
- lable的渲染
<StackPanel Margin=" TextOptions.TextFormattingMode="Display"> <Label TextOp ...
- python3 requests_html 爬取智联招聘数据(简易版)
PS重点:我回来了-----我回来了-----我回来了 1. 基础需要: python3 基础 html5 CS3 基础 2.库的选择: 原始库 urllib2 (这个库早些年的用过,后来淡忘了) ...
- macport命令--笔记
macport命令:sudo port sync //同步本地和全球的ports tree,但不检查自己是否有更新.sudo port install python36 //安装python36sud ...
- 处理 Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.config' is
场景 某监控进程需要访问多个集群的Kafka INFO - org.apache.kafka.common.KafkaException: Failed to construct kafka cons ...
- requests用法基础-进阶
本节内容 模块的安装 -----------------------基础用法--------------------- GET用法.POST用法 -----------------------进阶用法 ...