C# 基础(二十一)C# 自定义泛型集合:增删改查、Add、Insert、AddRange、FindAll等等

参考:

https://www.cnblogs.com/allencxw/p/9590882.html

https://www.cnblogs.com/lgx5/p/5975529.html

Person.cs: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    public class Person
      {
         public string Name { set; get; }
         public int Age { set; get; }
     }
}

主程序:

#region 集合;普通集合与类的集合
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Messaging;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 一、普通集合ArrayList与Add方法,引用了System.Collections命名空间
            ArrayList myAL = new ArrayList();
            myAL.Add("The");
            myAL.Add("quick");
            myAL.Add("brown");
            myAL.Add("fox");
            foreach (var list in myAL)
            {             
                Console.WriteLine(list.ToString());//输出集合的所有元素。
            }
            Console.WriteLine(myAL.IndexOf("brown"));//输出集合的指定元素的位置。
            Console.WriteLine();
            #endregion

            #region 二、普通集合ArrayList与AddRange方法,引用了System.Collections命名空间
            ArrayList myAL1 = new ArrayList();
            myAL1.Add("The");
            myAL1.Add("quick");
            myAL1.Add("brown");
            myAL1.Add("fox");
            Queue myQueue = new Queue();
            myQueue.Enqueue("jumped");
            myQueue.Enqueue("over");
            myQueue.Enqueue("the");
            myQueue.Enqueue("lazy");
            myQueue.Enqueue("dog");
            myAL1.AddRange(myQueue);//将集合myQueue的所有元素添加到集合myAL1的末尾。
            foreach (var list in myAL1)
            {
                Console.WriteLine(list.ToString());//输出集合的所有元素。
            }
            Console.WriteLine();
            #endregion

            #region 三、泛型集合List<T>与Add方法,引用了System.Collections.Generic命名空间
            List<string> dinosaurs = new List<string>();
            dinosaurs.Add("Tyrannosaurus");
            dinosaurs.Add("Amargasaurus");
            dinosaurs.Add("Mamenchisaurus");
            dinosaurs.Add("Deinonychus");
            dinosaurs.Add("Compsognathus");
            foreach (var list in dinosaurs)
            {
                Console.WriteLine(list.ToString());//输出集合的所有元素。
            }
            Console.WriteLine();
            #endregion

            #region 四、泛型集合List<T>与AddRange方法,引用了System.Collections.Generic命名空间
            string[] input = { "Brachiosaurus", "Amargasaurus", "Mamenchisaurus" };
            List<string> dinosaurs2 = new List<string>();
            dinosaurs2.AddRange(input);
            foreach (var list in dinosaurs2)
            {
                Console.WriteLine(list.ToString());//输出集合的所有元素。
            }
            Console.WriteLine();
            #endregion


            #region 五、自定义泛型集合
            List<Person> personList = new List<Person>()
            {
                 new Person(){ Name="a", Age=2 },
                 new Person(){ Name="d", Age=9 },
                 new Person(){ Name = null, Age=3 },//Name可以设置为空值
                 new Person(){ Name="c", }          //Age默认值为0
             };
            foreach (var list in personList)
            {
                Console.WriteLine(list.Name + "-" + list.Age);
            }

            Console.WriteLine();
            personList[0].Name = "aaaa";                            //更改集合的某条记录的某个属性值。
            foreach (var list in personList)
            {
                Console.WriteLine(list.Name + "-" + list.Age);
            }
            Console.WriteLine();

            //往集合中添加几条条记录
            personList.Add(new Person() { Name = "dd", Age = 44 }); //Add方法:在末尾插入
            personList.Add(new Person() { Name = "ee", Age = 55 });
            personList.Add(new Person() { Name = "ee", Age = 55 });
            personList.Add(new Person() { Name = "ff", Age = 55 });
            personList.Insert(1,new Person() { Name = "two", Age = 222 }); //Insert方法:在指定位置插入
            personList.AddRange(new List<Person>()                  //AddRange方法 
            {
                new Person(){ Name="HH", Age=66 },
                new Person(){ Name="II", Age=77 },
            });
            foreach (var list in personList)
            {
                Console.WriteLine(list.Name + "-" + list.Age);      
            }
            Console.WriteLine();

            //删除集中第一条记录
            personList.RemoveRange(0,1);                            
            foreach (var list in personList)
            {
                Console.WriteLine(list.Name + "-" + list.Age);       
            }
            Console.WriteLine();

            //拷贝集合到
            List<Person> personList2 = new List<Person>();
            personList2 = personList;                               
            foreach (var list in personList2)
            {
                Console.WriteLine(list.Name + "-" + list.Age);
            }
            Console.WriteLine();
            //Array.ConstrainedCopy(personList, 0, personList2, 0, 2); //字节拷贝常用ConstrainedCopy这种方法       

            //检索集合:根据某种条件检索。
            List<Person> personList3 = personList2.FindAll(p => p.Age == 55);//FindAll方法。
            foreach (var list in personList3)
            {
                Console.WriteLine(list.Name + "-" + list.Age);
            }
            Console.WriteLine();
            #endregion

            Console.ReadLine();
        }
    }
}
#endregion

输出结果:

The
quick
brown
fox
2

The
quick
brown
fox
jumped
over
the
lazy
dog

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus

Brachiosaurus
Amargasaurus
Mamenchisaurus

a-2
d-9
-3
c-0

aaaa-2
d-9
-3
c-0

aaaa-2
two-222
d-9
-3
c-0
dd-44
ee-55
ee-55
ff-55
HH-66
II-77

two-222
d-9
-3
c-0
dd-44
ee-55
ee-55
ff-55
HH-66
II-77

two-222
d-9
-3
c-0
dd-44
ee-55
ee-55
ff-55
HH-66
II-77

ee-55
ee-55
ff-55

 

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值