首页 > 其他分享 >List泛型集合之基本使用

List泛型集合之基本使用

时间:2022-08-31 22:12:30浏览次数:59  
标签:int List weapons 集合 数组 泛型 数据

 

数组

       //变量.单个数据
            int numA = 10;
            float numB = 3.14f;
            bool isstart = false;

            Console.WriteLine("{0} - {1} - {2}",numA,numB,isstart);


            //数组.int类型数组
            int[] numC = new int[3];
            numC[0] = 10;
            numC[1] = 20;
            numC[2] = 30;
            for (int i = 0; i < numC.Length; i++)
            {
                Console.WriteLine(numC[i]);
            }

            //数组.float类型数组
            float[] numD = new float[] { 1.2f, 2.4f, 3.5f, 5.5f };
            for (int i = 0; i < numD.Length; i++)
            {
                Console.WriteLine(numD[i]);
            }

            //数组.bool类型数组
            bool[] isStarts = new bool[3] { false, false, true };//明确写下了数组内有多少成员,括号内就要有多少
            for (int i = 0; i < isStarts.Length; i++)
            {
                Console.WriteLine(isStarts[i]);
            }

 

我们在使用数组管理数据的时候,是需要预先知道数组的长度的。但是在我们实际的开发过程中,很多数据往往无法事先知道一共有多少,在面对这些数据的时候,就无法使用数组来进行管理了。

数据结构

数据结构是计算机存储、组织、管理数据的的方式。

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

集合结构

C#中提供了一系列特殊功能的类,这些类可以存储任意类型的对象,并且长度是可变的,他们统称为集合。

在C#编程语言中,集合结构有两种:泛型集合,非泛型集合。

泛型集合:只能存储固定类型的对象的一种集合。

要使用泛型集合,我们必须引入对应的命名空间:

System.Collections.Generic

List<T>

如果看到后面又跟着“<T>”,就可以知道这是一个泛型。

"T"的位置可以放上任何类型。

"T"的位置放上什么类型,这个集合就只能存这个类型的对象、或者数据。

List<T>是一个C#内置的一个类,是类我们就可以实例化出对象。

List<T>本质和数组是一样的。

因为List<T>这个类的内部其实是维护了一个数组。

但是List<T>比数组灵活,这个类封装了很多方便我们操作这个内部数组的各种方法,我们可以方便的对数据进行增加,删除,修改等操作,且List<T>的长度是可以动态改变的,在实例化 List<T>类型对象时,不需要指定长度。

List<T>基本使用

1.创建泛型集合

①首先引入命名空间:

using System.Collections.Generic;

②List<类型>集合名= new List<类型>();

⒉.集合数据操作心
①增加数据

集合名.Add ( Value)ll往集合中添加数据;

往集合中添加,数据会不断的添加到集合中,形成一种类似于排队的效果。

②查询数据

集合名[索引I取出指定索引位置的数据;

List<T>的索引和数组一样,也是从0开始;

集合的长度可以通过“集合名.Count”这个属性来取得;

③删除数据

集合名.RemoveAt(索引)

删除指定索引位置的数据;.

该索引位置的数据被删除后,该索引后面的数据的索引会自动被调整;(根据值所在的位置,也就是索引进行删除)

④修改数据

集合名[索引]=新值;l给指定索引的的数据重新赋值;

 

 

 List<T>管理对象

1.对象类定义

定义一个“RPG武器类”,实例化出来的每个对象都代表壬把武器。这个类包含基本字段:

①编号[int] ②名字[string] ③攻击力[int]

并完成相应的属性,构造方法。

using System;
using System.Collections.Generic;
using System.Text;

namespace _03
{
    class weapon
    {
        private int id;
        private string name; 
        private int attack;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        public int Attack
        {
            get { return attack; }
            set { attack = value; }
        }

        public weapon(int id,string name,int attack)
        {
            this.id = id;
            this.name = name;
            this.attack = attack;
        }

        public override string ToString()
        {
            return string.Format("id:{0}-name:{1}-attack:{2}", id, name, attack);
        }
    }
}

2.List<T>管理对象

①定义一个武器集合;

②实例化单个物品,并添加到集合中;

③从集合中删除指定的物品;

④修改集合中指定物品的信息;

⑤查询显示集合中的数据。

using System;
using System.Collections.Generic;

namespace _03
{
    class Program
    {
        static void Main(string[] args)
        {
            //武器集合的定义
            List<weapon> weapons = new List<weapon>();

            //实例化一把武器
            weapon item = new weapon(1, "枪", 100);
            weapons.Add(item);

            weapons.Add(new weapon(2, "刀",50));
            weapons.Add(new weapon(3, "箭",50));
            weapons.Add(new weapon(4, "棍",30));

            //常规删除
            weapons.RemoveAt(1);

            //针对名字删除
            for (int i = 0; i < weapons.Count; i++)
            {
                if (weapons[i].Name =="刀")
                {
                    weapons.RemoveAt(i);
                }
            }
            
            for (int i = 0; i < weapons.Count; i++)
            {
                Console.WriteLine(weapons[i]);//打印一个对象时,默认使用ToString方法
            }
  
            Console.ReadKey();
        }
    }
}

用户管理系统

MVC简介

MVC是软件开发行业比较经典的设计模式,是一种代码开发的思想和套路。将要实现的某个功能分成三个部分:

V: View [视图层],也就是界面,主要负责和用户进行输入输出的交互;

C: Controller [控制器层],负责处理该功能的逻辑部分;

M: Model [模型层],主要对数据进行操作;

这里以网站的登录页面为例进行说明:

Dictionary<K,V>

Dictionary集合是一种“键值对”集合。

该集合中的每个数据都是有两部分组成的,键和值,就和中国人的名字是有姓和名组成的,是一样的道理。

在键值对集合中,我们是根据“键”去找值的,这一点和List<T>不同。

在键值对集合中,键必须是唯一的,而值是可以有重复的。

List<T>泛型集合,我们只限定了数据(T)的类型;而在Dictionary<K,V>泛型集合中,我们要分别限定键(K)

和值(V)的类型。

Dictionary<K,V>基本使用

1.创建泛型集合

①首先引入命名空间:using System.Collections.Generic;

②Dictionary<K类型,V类型>集合名=new Dictionary<K类型,V类型>();

⒉.集合数据操作;

①增加数据

集合名.Add (K,V)ll往集合中添加数据;

Dictionary的键是唯一的,不能添加两个同键名的数据。

②查询数据

集合名[键名]

取出指定键名所对应的数据;

集合的长度可以通过“集合名.Count”这个属性来取得。

③删除数据

集合名.Remove(键名)I/删除指定键名所对应的数据;

④修改数据

集合名[键名]=新值;l给指定键名所对应的数据重新赋值;

 

 ⑤遍历字典集合

foreach (var item in dic.Keys)   //var代表不定类型(任意类型)

{

  Console.writeLine( r{0}:{1}", item,dic[item]);

}

 

 

标签:int,List,weapons,集合,数组,泛型,数据
From: https://www.cnblogs.com/tenyuan/p/16644696.html

相关文章

  • java使用Stream简单操作集合
     效果图  本项目使用springbootpom依赖<!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <v......
  • 集合之Map和List线程安全问题
    一、Map常见的子类有:1、HashMap:底层数据结构是哈希表,线程不安全,允许null键和null值2、Hashtable:线程安全的,不允许null键和null值,效率低,给整个方......
  • [CentOS8]Repository extras is listed more than once in the configuration
    1.问题[root@localhost~]#yuminstallhttps://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpmRepositoryextrasislistedmorethanonceintheconfigu......
  • Kali Sublist3r 报错解决办法
    直接将Sublist3r.py中文件的内容替换为下面的即可具体的更改的东西改了很多地方就不细说了,直接复制粘贴如果遇到Error:Virustotalprobablynowisblockingour reque......
  • 因势而变,因时而动,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang泛型(generic)的使用E
    事实上,泛型才是Golang1.18最具特色的所在,但为什么我们一定要拖到后面才去探讨泛型?类比的话,我们可以想象一下给小学一年级的学生讲王勃的千古名篇《滕王阁序》,小学生有多大......
  • (三)redis命令学习,List
    packageredis.clients.jedis.commands;importjava.util.List;importredis.clients.jedis.args.ListDirection;importredis.clients.jedis.args.ListPosition;im......
  • 贪心算法(集合覆盖)
    1.应用场景-集合覆盖问题假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号2.贪心算法介绍1)贪婪算法(......
  • va_list介绍
    va_list介绍https://blog.csdn.net/weixin_40332490/article/details/105306188无名无奈于2020-04-0409:59:23发布  va_list是在C语言中解决变参问题的一组宏,变......
  • 优雅创建List或者Map的方式
    List创建空List:Collections.emptyList();创建单个元素的List:Collections.singletonList("item");但是需要注意,上面两种创建方式创建出来的List都是不可变List,创建可......
  • java学习笔记016 泛型、流
    ######1.泛型Genericsince1.5标示元素类型的参数,泛型不能是基本数据类型泛型不同的引用不能相互赋值静态方法不能使用泛型,因为实例化类的时候要指定泛型,但是静态方......