文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#集合查询Linq在项目中如何使用

2023-06-30 16:54

关注

这篇文章主要介绍“C#集合查询Linq在项目中如何使用”,在日常操作中,相信很多人在C#集合查询Linq在项目中如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#集合查询Linq在项目中如何使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Linq Lambda

说到Linq,就不得不提Lambda表达式了,说实话,实际开发中,直接用Linq写的相关代码还真不多,Lambda表达式到处都是!

先上代码,直观看看他们两者有什么区别

static void Main(string[] args){    List<User> users = new List<User>();    var letters = "abcdefghijklmnopqrstuvwxyz";    var rand = new Random();    for (int i = 0; i < 10; i++)    {        string name = default;        for(int j = 0; j < 4; j++)        {            name += letters[rand.Next(25)];        }        users.Add(new User { Name = name, Age = rand.Next(1, 99) });    }    //Linq    IEnumerable<User> usera = from u in users where u.Age < 35 select u;    //usera.ToList();    //Lambda    List<User> userb = users.Where(x => x.Age < 35).ToList();    //输出来看看    foreach(User u in usera)    {        Console.WriteLine("name:{0},age:{1} \n", u.Name, u.Age);    }    Console.WriteLine("------------------");    foreach (User u in userb)    {        Console.WriteLine("name:{0},age:{1} \n", u.Name, u.Age);    }    Console.ReadLine();}class User{    public string Name { get; set; }    public int Age { get; set; }}

看完代码,是不是感觉Linq跟SQL差不多,对,本来他们就是类似语言,我个人猜测应该是模仿出来的一种语法糖吧(具体谁模仿谁就不得而知了),相似也好,学起来更方便了。而Lambda表达式写起来是真的舒服!
那么,Linq和Lambda有什么关系呢
包含的关系,Linq范围更广一些,Lambda表达式看起来像一个箭头函数,就是!,也可以说是一个匿名函数!他相当于Linq的二次封装语法糖吧(个人理解)
基本上Linq能实现的,Lambda表达式都可以实现
通常沟通中,说Linq写法,其实默认就是Linq Lambda表达式了。直接链式写法,简洁,可读性,后期维护起来也是非常方便的。

众所周知,SQL能实现的功能是非常强大的,而Linq同样可以实现。
但实际开发中,SQL一般会写的相当复杂,聚合查询是常事,而Linq一般很少涉及(也能多表查询),更多的是诸如去重、筛选、排序、分组、统计计算等操作

Linq项目中的一次使用经历

获取不同用户的权限菜单 当用户登录时,可以获取到用户的权限菜单集合(id集合),而具体展示菜单,还需要到全部菜单集合中去查找对应的,然后筛选出来,返回给前端,最后进行渲染展示!
如果菜单集合List全都是一级菜单,那相当简单,但是如果有二级、三级菜单就比较麻烦了,在这个筛选过程中,我就用到了Linq来实现部分功能

//powers 用户权限菜单集合//menus 全部菜单集合//menus.SubItems 二级菜单集合(from sub in menus.SubItems where powers.Any(x=>x.Key == sub.Id) select sub).Count()

如上代码段,可以获取到当前菜单的子菜单的个数
如果不加外层的Count(),那结果就是当前菜单子菜单(此用户有权限的)集合
如果不采用Linq,一行代码很难实现(方法还是有的,只是不会Linq那么方便写)

Linq to js [在前端的应用]

LINQ其实并不是后端语言的专属,前端同样可以使用,只需要引用相应的js插件即可
js、vue等项目中都有对应的插件(例如jslinq),仅需要对应的组件中引入插件(也可以在母版页或全局引用),然后就可以像后端语言中一样的使用即可。
具体写法与后端语言差不多,常用方法名也都一样
要说不一样的地方,我感觉唯一不好的体验就是,前端使用时,没有代码提示了,如果对LINQ不太熟悉的,在使用LINQ时,还需要借助相关文档,多用几次,自然就不算什么问题了。

到此,关于“C#集合查询Linq在项目中如何使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯