ArrayList和HashTable集合

1.ArrayList集合

***添加元素

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//
ArrayList list = new ArrayList(); //集合:很多数据的一个集合,长度可以任意改变,类型随便
//数组:长度不可变,类型单一 list.Add();
list.Add(true);
list.Add("zq");
list.Add('w'); /*
* ToString方法
我们将一个对象输出到控制台 默认情况下 打印的就是这个对象所在的类的命名空间
*/
list.Add(new int []{,,,,,,});
Person p = new Person();
list.Add(p);
list.Add(list); for(int i=;i<list.Count;i++)
{
if(list[i] is Person)
{
((Person)list[i]).Say();
}
else if(list[i] is int[])
{
int[] array = (int[])list[i];
for(int j=;j<array.Length;j++)
{
Console.WriteLine(array[j]);
}
}
else
{
Console.WriteLine(list[i]);
} //Console.WriteLine(list[i]);
} Console.ReadKey();
}
} public class Person
{
public void Say()
{
Console.WriteLine("say!");
}
}
}

***添加集合元素

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO; namespace ArrayList
{
class Program
{
static void Main(string[] args)
{ System.Collections.ArrayList list = new System.Collections.ArrayList();
list.Add(); //添加集合元素
list.AddRange(new int[] { , , , , , , , , });
list.AddRange(list);
for(int i=;i<list.Count;i++)
{
Console.WriteLine(list[i]);
}
Console.ReadKey(); }
}
}

***集合的操作(插入,删除,清空,反转,排序)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO; namespace ArrayList
{
class Program
{
static void Main(string[] args)
{ System.Collections.ArrayList list = new System.Collections.ArrayList();
list.Add();
list.Add(true);
//添加集合元素
list.AddRange(new int[] { , , , , , , , , });
list.AddRange(list); //*******************************
//list.Clear();//清空所以元素
//list.Remove(true);//删除单个元素
//list.RemoveAt(0);//根据下标去删除元素
//list.RemoveRange(0, 3);//根据下标去删除一定范围内的元素
//list.Reverse();//反转
//list.Sort();//升序排列
list.Insert(, "insert");//在指定的位置,插入一个元素
list.InsertRange(, list);//在指定的位置,插入一个集合
bool tt= list.Contains();//判断集合包含不包含改元素 for(int i=;i<list.Count;i++)
{
Console.WriteLine(list[i]);
} Console.ReadKey(); }
}
}

***集合的长度

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ArrayList长度问题
{
class Program
{
static void Main(string[] args)
{
System.Collections.ArrayList list = new System.Collections.ArrayList();
list.Add();
//Count:表示这个集合中实际包含的元素个数
//Capacity:表示这个集合中可以包含的元素个数
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity); //****
//每次集合中实际包含的个数(count)超过了可以包含的元素个数(Capacity)的时候,
//集合就会在内存中申请多开辟一倍的空间,来保证集合的长度够用。 Console.ReadKey(); }
}
}

2.Hashtable 集合 --> 键值对集合

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Diagnostics; namespace HashTable
{
class Program
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add(,"");
ht.Add(, "");
ht.Add(true, "True");
ht.Add(false, "False"); ht[] = ""; //在键值对集合中 是根据键去找值得
//Console.WriteLine(ht[true]);
foreach (var item in ht.Keys)
{
Console.WriteLine(ht[item]);
}
//for (int i = 0; i < ht.Count;i++ )
//{
// Console.WriteLine(ht[i]);
//} //键值对里面的键是唯一的,值可以重复! //常用方法:判断键是否唯一
if(!ht.ContainsKey())
{
ht.Add(, "");
}
else
{
Console.WriteLine("已包含");
} //常用方法
ht.Clear();
ht.Remove(); //****
//问:for/foreach 在循环次数很多很多的情况下,谁的效率高
//foreach循环效率要高很多! //****测试程序运行时间
/*
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 10000000; i++)
{ }
sw.Stop();
Console.WriteLine(sw.Elapsed);
* */ Console.ReadKey();
}
}
}

**C# var 关键字

地址:https://www.cnblogs.com/ggll611928/p/5991401.html

3.简体繁体子转换 用Hasgtable集合

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections; namespace ConsoleApplication2
{
class Program
{
private const string jian = "常数声明可以声明多个常数";
private const string fan = "常2聲明可以聲明多個常數"; static void Main(string[] args)
{
Hashtable ht = new Hashtable(); //Console.WriteLine(jian[1]);
for (int i = ; i < jian.Length; i++)
{
if(!ht.ContainsKey(jian[i]))
{
ht.Add(jian[i], fan[i]);
}
} string input = Console.ReadLine(); for (int i = ; i < input.Length; i++)
{
if(ht.ContainsKey(input[i]))
{
Console.Write(ht[input[i]]);
}
else
{
Console.Write(input[i]);
} }
Console.ReadKey();
}
}
}

C#面向对象12 集合的更多相关文章

  1. 面向对象之集合ArrayList

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...

  2. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

    #Java基础测试 涉及知识点:数组,面向对象,重载,重写,继承,集合,排序,线程,文件流 一.多项选择题(可能是单选,也可能是多选) 1.下列标识符命名不合法的是(   D  ). A.$_Name ...

  3. Java学习日记-12 集合(2)

    一.List<E>接口(超级接口Collection,List比Collection多重载了一些索引作为形参的方法)1.实现类ArrayList\LinkedListArrayList顺序 ...

  4. 12集合(3)-----Map

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  5. 12集合(2)-----Set

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  6. 12集合(1)-----List

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  7. note 12 集合Set

    集合Set +无序不重复元素(键)集 +和字典类似,但是无"值" 创建 x = set() x = {key1,key2,...} 添加和删除 x.add('body') x.re ...

  8. plsql programming 12 集合(忽略, 个人感觉用不到)

    关联数组, 嵌套表, varray 个人并不推荐使用集合, 因为操作有别于普通字段. 集合中每一个元素的数据类型都是相同的, 因此这些元素都是同质的(同质元素) 这一章的内容先忽略吧, 因为个人感觉用 ...

  9. Java面向对象12——static详解

    static  package oop.demon01.demon07; ​ // static : public class Student { ​     private static int a ...

随机推荐

  1. sql 同一张表查询不同数据合并之后关联查询

    SELECT t.articleId articleId, comments.`comments` parentComment, t.commentId commentsId, comments.`i ...

  2. HearthBuddy炉石兄弟 如何调试ai

    Sepefeets's update to botmaker's Silverfish AI This AI is a Custom Class for Hearthranger and Hearth ...

  3. IDEA 运行单元测试报错 @{argLine}

    sentinel是今年阿里开源的高可用防护的流量管理框架. git地址:https://github.com/alibaba/Sentinel wiki:https://github.com/alib ...

  4. Exponentiation(求高精度幂)

    Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 175340   Accepted: 42341 ...

  5. 客户端连接虚拟机上的MYSQL报错

    这个原因是因为虚拟机的数据库拒绝其他主机访问 所以需要设置虚拟机的mysql 打开mysql mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' ID ...

  6. mybatis映射文件祥解(StudentMapper.xml)

    1)以下是StudentMapper.xml文件,提倡放在与实体同目录下,文件名任意 <?xml version="1.0" encoding="UTF-8&quo ...

  7. android Api操作SQLite数据库的示例代码

    import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa ...

  8. Redis高级特性及应用场景

    Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...

  9. C# 后台服务 web.config 中 项“ConnectionString”已添加。问题

    是自己在一网站下建了虚拟目录.原本网站为空,后来自己改了路径,有了默认配置很久后打开原本ok的虚拟目录,坑爹了.杯具了.代码:ConfigurationManager.ConnectionString ...

  10. delphi 需要应用一个单元是,需要在工程里面先添加单元

    delphi 需要应用一个单元是,需要在工程里面先添加单元