前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c# List+Ling的那些常用操作

c# List+Ling的那些常用操作

原创
作者头像
谭广健
发布2022-10-13 15:47:18
3730
发布2022-10-13 15:47:18
举报
文章被收录于专栏:谭广健的专栏

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总同时存在的数据\n\r");
 foreach (var item in exp1)
 {
       Txt.AppendFormat("{0} \t {1} \t {2} \n\r", 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不存在的数据\n\r");
            foreach (var item in exp2)
            {                
                Txt.AppendFormat("{0} \t {1} \t {2}  \n\r", item.name, item.subject, item.score);
            }

除了这些,还可以怎么?自己看吧,就不多说了,也挺容易理解的。。

代码语言:javascript
复制
 var student3 = new List<student>();            
     student3 = student1.Except(student2).ToList();//差集
     Txt.Append("差集\n\r");
     foreach (var item in student3)
     {
       Txt.AppendFormat("{0} \t {1} \t {2}  \n\r", item.name, item.subject, item.score);
     }

     student3 = student1.Union(student2).ToList();//差集
     Txt.Append("并集\n\r");
     foreach (var item in student3)
     {
       Txt.AppendFormat("{0} \t {1} \t {2}  \n\r", item.name, item.subject, item.score);
     }
     student3 = student1.Intersect(student2).ToList();//差集
     Txt.Append("交集\n\r");
     foreach (var item in student3)
     {
       Txt.AppendFormat("{0} \t {1} \t {2}  \n\r", item.name, item.subject, item.score);
     }

最后结案吧,C#里面的LIST是很重要的,还有Ilist也是非常好用的,配合Ling的应用可以减少数据库的负担和加速程序的运行。。好吧,这次到这里。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档