C#中的泛型和集合的简单使用

1,泛型List<T>

泛型List<T>,其中T为自定义的数据类型

List<int> list=new List<int>();

list.Add(121);

Add()方法用来添加相应类型的元素。

练习1:

//把这两个集合去除重复项合并成一个。
List<int> listOne = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> listTwo = new List<int>() { 2, 3, 4, 5, 6, 78 };

//循环listOne,判断其中元素是否包含有listTwo的元素
for (int i = 0; i < listOne.Count; i++)
{
    //判断listOne元素不包含于listTwo时才添加到listTwo
    if (!listTwo.Contains(listOne[i]))
    {
        listTwo.Add(listOne[i]);
    }
}

for (int i = 0; i < listTwo.Count; i++)
{
    Console.WriteLine(listTwo[i]);
}

练习2:

//随机生成10个1-100之间的数放到List中,要求这10个数不能重复,并且都是偶数(添加10次,可能循环很多次。)
            //思路:都是偶数是判断条件;数量10个,先创建一个元素个数为10的list
            List<int> listInt = new List<int>();
            listInt.Add(2);

            Random r = new Random();

            while (listInt.Count != 10)//当count达到10个不成立,不再进入循环;或者用Count<10
            {
                int num = r.Next(1, 101);//随机生成的数
                //判断当num不包含于listInt 并且是偶数时 添加进来
                if (!listInt.Contains(num) && num % 2 == 0)
                {
                    listInt.Add(num);
                }
            }
            for (int i = 0; i < listInt.Count; i++)
            {
                Console.WriteLine(listInt[i]);
            }

2,集合Dictionary

Dictionary<Key,value>

Dictionary和泛型一样也用Add()方法添加元素

键值对一般使用foreach遍历

练习1

Dictionary<int, string> dics = new Dictionary<int, string>();
            dics.Add(1, "壹");
            dics.Add(2, "貮");
            dics.Add(3, "叁");
            dics.Add(4, "肆");

            //键值对一般通过foreach遍历
            //foreach (int item in dics.Keys)
            //{
            //    Console.WriteLine(item);
            //}
            //foreach (string item in dics.Values)
            //{
            //    Console.WriteLine(item);
            //}
            //同时遍历键和值
            foreach (KeyValuePair<int, string> item in dics)
            {
                Console.WriteLine(item.Key + "==" + item.Value);
            }

练习2

//输入数转换为大写
            string str = "1壹 2貮 3叁 4肆 5伍 6陆 7柒 8捌 9玖";
            string[] txts = str.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
            Dictionary<int, char> dic = new Dictionary<int, char>();
            for (int i = 0; i < txts.Length; i++)
            {
                if (!dic.ContainsKey(txts[i][0]))//如果txts[i][0]不包含于dic的key就添加进来
                {
                    dic.Add(txts[i][0], txts[i][1]);
                }
            }

            Console.WriteLine("请输入数字");
            string msg = Console.ReadLine();
            for (int i = 0; i < msg.Length; i++)
            {
                if (dic.ContainsKey(msg[i]))//如果用户输入的数字包含于集合中即显示对于的value
                {
                    Console.Write(dic[msg[i]]);
                }
                else
                {
                    Console.Write(msg[i]);//如果不包含于dic中 直接输出
                }
            }
时间: 2024-10-21 11:34:28

C#中的泛型和集合的简单使用的相关文章

java中使用redis --- Set集合的简单应用

1.java代码 public class RedisTest01 { public static void main(String[] args){ // connect redis server Jedis redis = new Jedis("127.0.0.1",6379); // 首先清除redis中的原有的键 redis.del("name"); redis.del("age"); // 向Set集合存放元素 redis.sadd(&

在集合中使用泛型

1 保证集合中元素类型的一致 package lianxi3; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.Test; public class TestGeneric { @Test //在集合中使用泛型 pub

C#中Dictionary泛型集合7种常见的用法

要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib)  Dictionary的描述1.从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成 2.任何键都必须是唯一的 3.键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值 4.Key和Value可以是任何类型(string,int,custom class 等) Dictionary常用用法:以

Java中泛型的介绍与简单使用

学习目标 掌握泛型的产生意义. 掌握泛型的基本使用. 了解泛型的警告信息及泛型的擦除. 泛型是在JDK1.5之后增加的内容,泛型(Generic) 使用泛型的原因 题目分析: 首先要考虑到,必须建立一好一个表示坐标点的类--Point,此类中有两个属性分别用来表示x坐标和y坐标,但是x和y中所保存的整数类型会有三种(int.float.String),而要想使用一个类型可以同时接收这样的三种类型数据,现在只能使用Object,因为Object类可以接收任何类型的数据,都会自动发生向上转型操作,这

Java 中的泛型详解-Java编程思想

Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的对象的类型 class Holder1 { private Circle a; public Holder1(Circle a) { this.a = a; } Circle get() { return a; } } 上面的类的可重用性不怎么样,无法持有其他类型的任何对象,下面通过持有Object

java中的泛型(转)

什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样. 可以在集合框架(Collection framework)中看到泛型的动机.例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象. 因为 Map.get(

.NET之美——1.1 C#中的泛型

1.1 C#中的泛型 .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持.通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱.拆箱,在一定程度上提升了应用程序的性能.本文将系统地为大家讨论泛型,我们先从理解泛型开始. 1.1 理解泛型 1.1.1 为什么要有泛型? 我想不论大家通过什么方式进入了计算机程序设计这个行业,都免不了要面对数据结构和算法这个话题.因为它是计算机科学的一门基础学科,往往越是底层的部分,对于数据结构或者算法的时间效率和空间

C#中的泛型 【转】

C#中的泛型 泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性.泛型为.NET框架引入了类型参数(type parameters)的概念.类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明.实现.这意味着使用泛型的类型参数T,写一个类MyList<T>,客户代码可以这样调用:MyList<int>, MyList<string>或 MyList<MyClass>.这避免了运行时类型转换或装箱

Java基础之Java中的泛型

1.为什么要使用泛型 这里我们俩看一段代码; List list = new ArrayList(); list.add("CSDN_SEU_Cavin"); list.add(100); for (int i = 0; i < list.size(); i++) { String name = (String) list.get(i); //取出Integer时,运行时出现异常 System.out.println("name:" + name); } 本例