参考:
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