C#里List Ling可以说是最常用的基本功能,但最近看了一下其他团队成员写的程序;哎,发现还有很大的提升空间。那好吧,我们就说一下List Ling能玩出什么的效果。。
说List,当然先定义一个List的类
代码语言:javascript复制 public class student {
/// <summary>
/// 姓名
/// </summary>
public string name;
/// <summary>
/// 科目
/// </summary>
public string subject;
/// <summary>
/// 分数
/// </summary>
public int score;
}
定义一个student的类,主体里面包含有4个成员:name,subject,score。除了score为数值型外,其余为字符型。
好了这个类建立了,那就通过这个类建立List了。。
代码语言:javascript复制 var student1 = new List<student>();
student1.Add(new student() { name = "张三", subject = "英语", score = 89 });
student1.Add(new student() { name = "李四", subject = "英语", score = 95 });
student1.Add(new student() { name = "王五", subject = "英语", score = 69 });
student1.Add(new student() { name = "李倩", subject = "英语", score = 99 });
var student2 = new List<student>();
student2.Add(new student() { name = "李四", subject = "英语", score = 95 });
student2.Add(new student() { name = "王五", subject = "数学", score = 69 });
student2.Add(new student() { name = "赵六", subject = "数学", score = 100 });
好,建立了2个List基本元素搞掂,就到重要操作了。这里Distinct()去重不细说了,反正简单。那我们就说一下下面的应用。
代码语言:javascript复制var exp1 = student1.Where(a => student2.Exists(t => a.name.Contains(t.name))).ToList();
StringBuilder Txt=new StringBuilder();
Txt.Append("查找student1和student2总同时存在的数据nr");
foreach (var item in exp1)
{
Txt.AppendFormat("{0} t {1} t {2} nr", item.name, item.subject, item.score);
}
上面就是查询出student1中包含student2的name,即是2条List姓名相同的记录。
下面则是查询出student1中不包含student2的name,即是2条List姓名不相同的记录。
代码语言:javascript复制 var exp2 = student1.Where(a => !student2.Exists(t => a.name.Contains(t.name))).ToList();
Txt.Append("查找student1集合中存在,而student2不存在的数据nr");
foreach (var item in exp2)
{
Txt.AppendFormat("{0} t {1} t {2} nr", item.name, item.subject, item.score);
}
除了这些,还可以怎么?自己看吧,就不多说了,也挺容易理解的。。
代码语言:javascript复制 var student3 = new List<student>();
student3 = student1.Except(student2).ToList();//差集
Txt.Append("差集nr");
foreach (var item in student3)
{
Txt.AppendFormat("{0} t {1} t {2} nr", item.name, item.subject, item.score);
}
student3 = student1.Union(student2).ToList();//差集
Txt.Append("并集nr");
foreach (var item in student3)
{
Txt.AppendFormat("{0} t {1} t {2} nr", item.name, item.subject, item.score);
}
student3 = student1.Intersect(student2).ToList();//差集
Txt.Append("交集nr");
foreach (var item in student3)
{
Txt.AppendFormat("{0} t {1} t {2} nr", item.name, item.subject, item.score);
}
最后结案吧,C#里面的LIST是很重要的,还有Ilist也是非常好用的,配合Ling的应用可以减少数据库的负担和加速程序的运行。。好吧,这次到这里。