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与Add方法,引用了System.Collections.Generic命名空间
            List dinosaurs = new List();
            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与AddRange方法,引用了System.Collections.Generic命名空间
            string[] input = { "Brachiosaurus", "Amargasaurus", "Mamenchisaurus" };
            List dinosaurs2 = new List();
            dinosaurs2.AddRange(input);
            foreach (var list in dinosaurs2)
            {
                Console.WriteLine(list.ToString());//输出集合的所有元素。
            }
            Console.WriteLine();
            #endregion


            #region 五、自定义泛型集合
            List personList = new List()
            {
                 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()                  //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 personList2 = new List();
            personList2 = personList;                               
            foreach (var list in personList2)
            {
                Console.WriteLine(list.Name + "-" + list.Age);
            }
            Console.WriteLine();
            //Array.ConstrainedCopy(personList, 0, personList2, 0, 2); //字节拷贝常用ConstrainedCopy这种方法       

            //检索集合:根据某种条件检索。
            List 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

 

 

你可能感兴趣的:(C# 基础(二十一)C# 自定义泛型集合:增删改查、Add、Insert、AddRange、FindAll等等)