• Asp.Net 之字符串和集合的使用


                                      

    一:object:所有类的基类,所有类都直接或者间接继承自object

     

    二:string

    1. 字符串的定义:string str=””    string str=new string(new char[]{});
    2. 如果没有使用,系统不会为其编译生成
    3. 字符是不可变的---字符串是静态文本值,如果对字符串值做修改,系统会重新为其分配一块空间,但是原有的空间也不会被收回,而是继续放在常量区,直到应用程序结束才收回。
    4. 字符串的本质就是一个字符数组。

     

    三:字符串的常用方法:

    1. int Length:它是以字符个数做为返回值标准,不区分中英文
    2. int IndexOf(string str):找到你所指定的字符串在源字符串中第一次出现的位置(索引从0开始计算) ,如果没有找到则返回-1
    3. int IndexOf(char ch)
    4. int LastIndexOf(int ch);找到你所指定的字符串在源字符串中最后次出现的位置(索引从0开始计算) ,如果没有找到则返回-1
    5. bool EndsWith(String str)    //是否以指定字符结束 
    6. bool Contains(string s)       //  是否包含指定序列 应用:搜索
    7. bool Equals(Object anObject)  //是否相等 (overload)
    8. String ToUpper():转换为大写
    9. String ToLower():转换为小写
    10. Split():可以按指定的字符(数组)分割,返回一个字符串数组

    a) string[]splitStr=str.Split(newchar[]{',','.','},StringSplitOptions.RemoveEmptyEntries);

    b) string[] splitStr=str.Split(‘’);

    1. Join:string的静态方法,可以使用指定的字符将数组中的每一个元素连接
    2. Format:可以使用占位符,特别是可以指定日期的格式。
    3. string.IsNullOrEmpty():判断字符串变量是否为null或者””

     

    四.枚举:固定的一些值:字符串值、整型值

    1. 枚举的本质是整型(int32),枚举值可以认为是整数值的字符串表现形式。
    2. public enum Gender{男=0,女=1}
    3. 如果做类型转换:

     1 int num=(int)Gender.男; 2 3 Gender gen=(Gender)Enum.parse(TypeOf(Gender),""); 

     

    五:ArrayList:

    1. 命名空间:System.Collections;
    2. 定义:ArrayList list=new ArrayList(int capacity);
    3. 添加元素:

    a) Add(object obj):意味着可以添加任意类型的值

    b) AddRange():可以一次性添加多个值

    1. 遍历:遍历方法和数组基本一致,都是通过下标索引来获取其中的元素,只是注意集合的元素个数是Count
    1 for (int i = 0; i < arr.Count;i++ )
    2 
    3             {
    4 
    5                 Console.WriteLine(arr[i]);
    6 
    7             }
    1. 获取集合元素:通过key值获取
    2. 集合元素的删除:

    a) Remove():以对象的方式删除元素,如果对象没有存在 不会报错

    b) RemoveAt():删除指定索引位置的元素

    c) RemoveRange():删除指定的范围

    1. 长度是可变的  length:长度 capacity:容量,capacity不能小于实际内容的值,当你将length变大之后,capacity会自动变大。
    2. .它的类型是object,---写入和读取的时候需要做装箱和折箱
    3. 6.clear();清空
    4. 7.Contains():判断是否包含某一个元素
    5. 8.ToArray();--object
    6. 不足:1.如果存储值类型,需要装箱和拆箱操作  2.不管什么类型的数据,存储之后,取出来使用必须通过类型转换

     

    六:hashTable:

    1. 键值对:通过key值计算出存储的下标,所以key值不能重复
    2. 定义:hashTable ht=new HashTable();
    3. 添加元素:Add(object key,object value)
    4. 获取元素:通过key值获取元素
    5. 删除元素:通过key值删除元素
    6. 遍历方法:

    a) Foreach(object key in ht.keys)

    b) Foreach(object v ib ht.values)

    c) Foreach(DictionaryEntry de in ht)

    {

    Console.WriteLine(de.key+”  “+de.value)

    }

     

     七:List<T>:相当于一个长度动态变化的数组:长度任意扩展,但是有数组类型规范

    1. 命名空间:using System.Collections.Generic;
    2. 创建:List<T> lists=new List<T>();T是指用户自定义的类型,可以是任意的类型,如 List<int> list=new List<int>();说明这个集合里面只能存放整型类型的数据
    3. 通过索引删除和访问及修改

     

    七:Dictionary<key,value>:相当于规范了类型的hashTable

    1. 定义:Dictionary<string, string> dics = new Dictionary<string, string>();
    2. 添加元素:只能通过Add(),如:

       

    1           dics.Add("aa", "aa");
    2 
    3             dics.Add("bb", "bb");
    1. 删除:通过key值删除
    2. 遍历:三种遍历方法:遍历key,遍历value,通过类型DictionaryEntry遍历。

     

     

    总结:

    1.Arraylist---List<T>:本质上来说,存储数据是就是object[]

    1.长度是可变的  length:长度 capacity:容量,capacity不能小于实际内容的值,当你将length变大之后,capacity会自动变大。

    2.它的类型是object,---写入和读取的时候需要做装箱和折箱

    3.增加:Add(object)

    4.删除:Remove(object)  RemoveAt(int index)

    5.集合通过索引下标访问

    6.clear();清空

    7.Contains():判断是否包含某一个元素

    8.ToArray();--object

    不足:1.如果存储值类型,需要装箱和拆箱操作  2.不管什么类型的数据,存储之后,取出来使用必须通过类型转换

    2.HashTable—Dictionary<Key,Value>:

    1.通过Add()方法添加元素,需要同时添加key和value

    2.通过key访问和删除

    3.数据其实是存放于一个burket[]中的

    1.key

    2.value

    3.hash_coll:它是由key通过算法得到,用来标明数据存储的地址空间,在遍历的时候通过这个hash_coll值取出对应的value,所以它的存取效率非常高,因为不需要像arrlist做遍历

    4.有三种遍历方式:

    1 foreach(object obj in ht.Keys)
    2 
    3             {
    4 
    5                 Console.WriteLine(obj);
    6 
    7             }

    --------------------------------------------

    1 foreach(object obj in ht.Keys)
    2 
    3             {
    4 
    5                 Console.WriteLine(obj);
    6 
    7             }

              ---.----------------------------------------------

    1        foreach (DictionaryEntry obj in ht)
    2 
    3          {
    4 
    5             Console.WriteLine(obj.key +”  :  “+obj.value);
    6 
    7          }
    1 foreach (KeyValuePair<Tkey,Tvalue> obj in ht)
    2 
    3          {
    4 
    5             Console.WriteLine(obj.key +”  :  “+obj.value);
    6 
    7          }

    不足:1.如果存储值类型,需要装箱和拆箱操作  2.不管什么类型的数据,存储之后,取出来使用必须通过类型转换

  • 相关阅读:
    C# 空合并运算符 ??
    基于ASP.NET Core 创建 Web API
    使用 csc.exe 编译C#代码
    NPOI创建Excel批注
    http协议 put、delete请求asp.net mvc应用,报404错误
    visual studio清理nuget包缓存
    String.IsNullOrEmpty 与 String.IsNullOrWhiteSpace
    C# linq to xml 简单示例
    SQL Server修改表结构,不允许保存更改。
    SQL Server 分离与附加数据库
  • 原文地址:https://www.cnblogs.com/lijingyang/p/3793838.html
Copyright © 2020-2023  润新知