李氏转换:

1)子类可以赋值给父类

2)子类对象可以调用父类成员,父类对象只能调用自己的成员。

子类赋值给父类案例

using System;namespace homework
{class Program{public static void Main(){Teacher t=new Teacher();Person p=t;string str=string.Join("|",new string[]{"1","2","3"});Console.WriteLine(str);Console.ReadLine();}public class Person{public void PersonSayHello(){Console.WriteLine("");}}public class Teacher:Person{public void TeacherSayHello(){Console.WriteLine("");}}}
}

父类强转为子类

using System;namespace homework
{class Program{public static void Main(){Person t=new Student();// Person p=t;// string str=string.Join("|",new string[]{"1","2","3"});// Console.WriteLine(str);// Console.ReadLine();Teacher p= t as Teacher;t.PersonSayHello();// if(t is Teacher)// {//     Teacher p=(Teacher)t;//     p.TeacherSayHello();// }// else// {//     Console.WriteLine("转换失败");// }Console.ReadLine();}public class Person{public void PersonSayHello(){Console.WriteLine("");}}public class Teacher:Person{public void TeacherSayHello(){Console.WriteLine("laoshi");}}public class Student:Person{public void StudentSayHello(){Console.WriteLine("xuesheng");}}}
}

随机产生多个类中输出

using System;namespace homework
{class test{static void Main(){Random r=new Random();Person[] per=new Person[10];for(int i=0;i<per.Length;i++){int rNumber=r.Next(1,5);switch(rNumber){case 1:per[i]=new Person();break;case 2:per[i]=new Teacher();break;case 3:per[i]=new Student();break;case 4:per[i]=new Driver();break;}}for(int i=0;i<per.Length;i++){if(per[i] is Student){((Student)per[i]).StudentSayhello();}else if(per[i] is Teacher){((Teacher)per[i]).TeacherSayhello();                }else if(per[i] is Driver){((Driver)per[i]).DriverSayhello();                }else{per[i].PersonSayhello();}}Console.ReadLine();}}public class Person{public void PersonSayhello(){Console.WriteLine("人类");}}public class Student:Person{public void StudentSayhello(){Console.WriteLine("学生");}}public class Teacher:Person{public void TeacherSayhello(){Console.WriteLine("老师");}}public class Driver:Person{public void DriverSayhello(){Console.WriteLine("司机");}}
}

protected

可以在当前类的内部以及子类中访问,比private的访问权限大。

ArrayList

将数组对象输出到控制台,默认情况下 打印的就是这个对象所在类的命名空间。

list.count与;list.capacity的区别:
count是实际包含的个数

capatity是能够存储的最大个数

每次集合中实际包含的元素个数超过可以包含的元素个数时候,集合会想内存申请多开一倍的空间,保证集合够用。

using System;
using System.Collections;namespace list
{class Program{static void Main(string[] args){//创建一个集合对象ArrayList list = new ArrayList();//集合:很多数据的一个集合//数组:长度不可以变、类型单一//集合对象的好处:长度可以任意改变、类型随便list.Add(1);list.Add(3.14);list.Add(true);list.Add("张三");list.Add('男');list.Add(500m);list.AddRange(new int[] { 1, 2, 3, 4, 5, 6 });list.AddRange(list);for (int i = 0; i < list.Count; i++){Console.WriteLine(list[i]);}Console.ReadKey();}}
}

Add()和AddRang()的使用场合

using System;
using System.Collections;namespace list
{class Program{static void Main(string[] args){//创建一个集合对象ArrayList list = new ArrayList();//集合:很多数据的一个集合//数组:长度不可以变、类型单一//集合对象的好处:长度可以任意改变、类型随便list.Add(1);list.Add(3.14);list.Add(true);list.Add("张三");list.Add('男');list.Add(500m);list.AddRange(new int[] { 1, 2, 3, 4, 5, 6 });list.AddRange(list);// list.Clear();//清空所有数据// list.Remove(1);//删除单个元素// list.RemoveAt(1);//根据下标删除元素// list.RemoveRange(0, 3);//根据下标移除一定范围的元素// list.Sort();//反序排序// list.Reverse();//反转// list.Insert();//在指定的位置插入一个元素// list.InsertRange();//在指定的位置插入// bool b = list.Contains(1);//判断list是否包含某个个=指定元素for (int i = 0; i < list.Count; i++){Console.WriteLine(list[i]);}Console.ReadKey();}}
}

1.创建一个结构化,添加数字,求取最大数值,总和以及平均数值

using System;
using System.Collections;namespace test
{class Program{static void Main(string[] args){//创建一个集合,里面添加数字,求平均数值与和ArrayList list = new ArrayList();list.AddRange(new int[] { 1, 2, 3, 4, 5, 6 });int sum = 0;int max = (int)list[0];for (int i = 0; i < list.Count; i++){if ((int)list[i] > max){max = (int)list[i];}sum += (int)list[i];}Console.WriteLine(sum);Console.WriteLine(max);Console.WriteLine(sum / list.Count);Console.ReadKey();}}
}

2.写一个长度为10的集合,要求在里面随机地存放10个数字。但是要求所有的数字重复

using System;
using System.Collections;namespace test
{class Program{static void Main(string[] args){ArrayList list = new ArrayList();Random r = new Random();for(int i=0;i<10;i++){int rNumber = r.Next(0,10);if(!list.Contains(rNumber)){list.Add(rNumber);}else{i--;}}for(int i=0;i<list.Count;i++){Console.WriteLine(list[i]);}Console.ReadLine();}}
}

Hashable键值对 集合

在键值对集合中,根据键找数值。

键值对对象[键]=数值,且键必须是唯一的,键值可以处重复

using System;
using System.Collections;namespace test
{class Program{static void Main(string[] args){Hashtable hs = new Hashtable();hs.Add(1, "张三");hs.Add(2, true);hs.Add(3, '男');hs.Add(false, "错误的");hs[1] = "李四";//索引方式添加 如果原来存在该键,那么进行键值的替换。如果没有,直接进行赋值if(!hs.ContainsKey("abc")){hs.Add("abc","cba");//hs["abc"] = "abc";}//hs.Clear();//hs.Remove(3);根据键移除for (int i = 1; i <= hs.Count; i++){Console.WriteLine(hs[i]);}Console.ReadLine();}}
}

foeach循环

using System;
using System.Collections;namespace test
{class Program{static void Main(string[] args){Hashtable hs = new Hashtable();hs.Add(1,"张三");hs.Add(2, true);hs.Add(3, '男');hs.Add(false, "错误的");foreach(var item in hs.Keys){Console.WriteLine("键是{0},值是{1}", item, hs[item]);}Console.ReadLine();}}
}

将用户输入简体字转换为繁体字

using System;
using System.Collections;namespace test
{class Program{private const String Jian = "人与生活";private const String Fan = "人與生活";static void Main(string[] args){Hashtable hs = new Hashtable();for (int i=0; i < Jian.Length; i++){hs.Add(Jian[i], Fan[i]);}Console.WriteLine("请随便输入");string input = Console.ReadLine();//遍历用户输入简体字for (int i = 0; i < input.Length; i++){if(hs.ContainsKey(input[i])){Console.WriteLine(hs[input[i]]);}else{Console.WriteLine(input[i]);}}Console.ReadKey();}}
}

 Path

1.获得文件名字

2.获得文件名但是不包含扩展名

...

using System;
//using System.Collections;
using System.IO;namespace test
{class Program{static void Main(string[] args) { string str = @"C:\3000\DS\name.txt";//获得文件名Console.WriteLine(Path.GetFileName(str));//获得文件名但无扩展名Console.WriteLine(Path.GetFileNameWithoutExtension(str));//获得文件扩展名Console.WriteLine(Path.GetExtension(str));//获得文件所在文件夹的名称Console.WriteLine(Path.GetDirectoryName(str));//获得文件所在全路径Console.WriteLine(Path.GetFullPath(str));//连接两个路径Console.WriteLine(Path.Combine(@"C:\a", "\b.txt"));Console.ReadLine();}}
}

File

将字节数组转换成字符串。读写数据:

Encoding.Default.GetString(字节数组)

Encoding.Default.GetBytes(字符串)

using System;
//using System.Collections;
using System.IO;namespace test
{class Program{static void Main(string[] args) {//创建一个文件File.Create(@"C:\jhs\1.txt");Console.WriteLine("创建成功");//删除一个文件File.Delete(@"  ");Console.WriteLine("删除成功");//赋值一个文件File.Copy(@"C:\jhs\1.txt", @"C:\jhs\12.txt");Console.WriteLine("复制成功");//1024byte=1kb//1024kb=1M//1024M=1G//1024G=1TConsole.ReadLine();}}
}

李氏转换/ArrayList/Hash C#编程相关推荐

  1. 转换ArrayList String 到String []数组[重复]

    本文翻译自:Convert ArrayList to String[] array [duplicate] This question already has an answer here: 这个问题 ...

  2. 进制转换应用场景_PLC编程:PLC内部各类型数据转换(整理分享)

    PLC使用的过程中,会有各种类型的数据需要处理.如十进制数.16进制数.2进制数.浮点数等.除了能够熟练的使用各种类型的数据外,深入的掌握这些数据的内部处理机制,可以在PLC编程使用更加轻松的处理各种 ...

  3. ip字符串转换 linux,Linux网络编程入门

    在日常使用,我们更多的使用十进制字符串表示IP地址,比如192.169.130.66,而不是记忆32位的IP地址(关键是太长了记不住呀),使用字符串IP更为方便,可读性也更好. 但是根据上述in_ad ...

  4. c语言编程单片机中的sbit,用sbit定义可位寻址的特殊功能寄存器时的地址转换-51单片机C编程...

    80C51单片机C编程时中,用sbit定义可位寻址的特殊功能寄存器的位变量(感觉说是常量更确切)时,编译器会进行处理,把sbit 后面给的地址值 转换成 相应的可进行位寻址的特殊功能寄存器 bit位 ...

  5. 单片机DA转换实验c语言编程,单片机DA转换实验报告

    实验九D/A实验报告 ㈠实验目的 1.掌握单片机与D/A的接口及编程方法: 2.通过D/A动态波形输出进一步理解D/A的工作原理: 3.结合实验六中的A/D来检验软硬件的正确性. 4.进一步了解单片机 ...

  6. c语言中程序文件与程序的转换,MCU-C程序基本编程规范(转)

    为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范.本标准规定了程序设计人员进行程序设计时必须遵循的规范.本规范主要针对单片机编程语言和08编译器而言,包括排版.注释.命名.变量 ...

  7. AD程序设计c语言,AVR AD转换的C语言编程

    #define uchar unsigned char #define uint unsigned int uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d ...

  8. 计算机中实现10进制转换成二进制c编程

    方法1(代码附上,暂时未行通,有兴趣可以修改一下) #include <stdio.h> int dectobe(int n) {int temp=n;int k=1;int result ...

  9. Easy Data Transform for mac (Excel和CSV编程文件转换工具) v1.11.1激活版

    Easy Data Transform mac版是一款很优秀好用的Excel和CSV编程文件转换工具.Easy Data Transform功能强大,操作简单,使用后可以帮助用户更轻松便捷的转换表格文 ...

最新文章

  1. 深度解析算法优化内部机制:为什么机器学习算法难以优化?
  2. Zero-Copysendfile浅析
  3. 3.通过现有的PDB创建一个新的PDB
  4. 大数据WEB阶段(五)jQuery
  5. Shell下的环境变量
  6. wxpython控件如何自动调整大小_wxpython:自动调整静态图像(staticbitmap)的大小以适应大小...
  7. 前端学习(3136):react-hello-react之不用柯里化的写法
  8. LeetCode 514. 自由之路(记忆化递归 / DP)
  9. 《企业迁云实战》——1.3 云服务的发展现状
  10. php 如何查看自增编号,PHP结果集怎么实现编号自增?
  11. 国内优秀论坛之大汇集
  12. linux安装fastboot工具包,Ubuntu下minicom,fastboot安装
  13. 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第三章 2020-12-25
  14. 三十正青春!苏宁818要用“好服务”抢占年轻用户心智
  15. adb下载、安装、环境配置
  16. 1688按关键词搜索示例
  17. Rust的crate
  18. C++ LinuxWebServer 2万7千字的面经长文(上)
  19. STM32 ADC 单次模式、连续模式、扫描模式
  20. rrpp协议如何修改_华为交换机—RRPP协议

热门文章

  1. 如何修改AD中PCB背景黑色域的大小
  2. 访问由于凭据无效被拒绝-解决方法
  3. 没有数据挖掘思路,从哪里开始学习?
  4. LFI漏洞利用总结(文件包含)
  5. BeesCMS系统漏洞分析溯源
  6. Android系统漏洞分析概述
  7. Python BeautifulSoup中文乱码问题
  8. Matlab演奏小星星
  9. python赚钱吗_学python能挣钱吗
  10. 易考题库 JAVA_EasyExam