• 四:MVC之LINQ方法语法


    linq 查询 有两种语法  ,前面我们说了一种,接下来说方法语法(我读着一直很绕口)

    查询语法,方法语法

    ------------------------以下文字都是复制-----------------------------------

    LINQ的优势


          1、无需复杂学习过程即可上手   
          2、编写更少代码即可创建完整应用。   
          3、更快开发错误更少的应用程序。   
          4、无需求助奇怪的编程技巧就可合并数据源。   
          5、让新开发者开发效率更高。   
          6、任何对象或数据源都可以定制实现Linq适配器,为数据交互带来真正方便。

    这种可以看这个, 这些字我都是复制的 给你们链接看看  https://blog.csdn.net/huchunfu/article/details/8245157

    1、查询语法:

     如:from p in Products select p; 

    2、方法语法:

     如:Where()

                 OrderBy()

                 Select() 

    注意  方法语法好像也有sql语句的语法规则  比如  where 在order 前面 

    lists.Where(n => n.Contains("a")).OrderBy(n => n.Length).Select(n => n.ToUpper());  可以运行 

    但是我把他这样就不能了

    lists.OrderBy(n => n.Length).Select(n => n.ToUpper()).Where(n => n.Contains("a"));

    --------------------------------分割线------------------------------------------------------

    下面进入主题

    1查询出所有含有a的字符串 不区分大小写

     string[] list = {"AAAA","ABBBB","ABCCCC","ABCDDDD" };  //随便打的

     var Quert = list

              .Where(n => n.Contains("a"))  //检测有没有a

              .OrderBy(n => n.Length)     //排序, 根据长度排序

              .Select(n => n.ToLower());  //转换大小写

      ViewBag.ddd = Quert;  //报错在这里  然后输出

    注意: var  可以变成IEnumerable   这是一个接口类型的  也可以简单的写成var

    代码

      public ActionResult Index()
            {
                //方法语法 
                string[] list = {"AAAA","ABBBB","ABCCCC","ABCDDDD" };
                var Quert = list.Where(n => n.Contains("A")).OrderBy(n => n.Length).Select(n => n.ToLower());
                ViewBag.ddd = Quert;
                return View();
            }
    View Code

    你们看看注释  ( 懒得打了 你们了解一下,下面才是正确代码)

    @item 这样子才能正确输出信息 如果不加@,不然的话 只是输出item(一个毫无意义的item字符串)

    @foreach (var item in ViewBag.ddd)
    {
      <h2>@item</h2>
      
    }
    正确代码

    这样子 就出来了

    注意 LINQ方法语法,一般都是和lambda一起使用的

    2  输出多个信息显示(linq查询语法和方法语法) 

    1 查询出所有年龄大于等于19的信息

    创建一个Person 类

    public class Person
    {
    public int Age { get; set; }
    public string Name { get; set; }
    public string Title { get; set; }
    }


    public ActionResult Index()
    {

    List<Person> person = new List<Person>{
    new Person(){ Name="cl" , Title="my", Age=18},
    new Person(){ Name="cl1" , Title="my", Age=19},
    new Person(){ Name="cl2" , Title="my", Age=20}
    };
    // var Linq = from p in person where p.Age >= 19 select p; //LINQ查询语法
    //LINQ方法语法
    var Linq = person.Where(n=>n.Age>=19);    //  LINQ方法语法   你们自行比较
    ViewBag.mes = Linq;

    return View();
    }

     index视图


    @foreach (var item in ViewBag.mes )  //  前面已经说了原因  一行语句只能写一个@
    {
    <h2><span>年龄:</span> @item.Age,<span>名字:</span>@item.Name</h2>  // 由于是多个参数, 所以 带了参数
    }

     

       完毕,  欢迎交流!!!

  • 相关阅读:
    路径规划 Adjacency matrix 传球问题
    Graph
    n的阶乘的n次方根的倒数的序列为无穷小序列
    原文来自 url get
    对称加密 非对称加密 生活模型
    签名 sign key 纸质邮件 历史 RSA诞生历史
    离散数学图论
    内联函数
    由适当地放宽不等式 概括出 一个引理
    序列 有界 无界的证明
  • 原文地址:https://www.cnblogs.com/whatarey/p/9150519.html
Copyright © 2020-2023  润新知