四:MVC之LINQ方法语法

本文介绍了LINQ的两种语法形式:查询语法和方法语法,并通过实例对比展示了这两种语法的特点及使用方式。同时,文章还讲解了如何利用LINQ进行数据筛选、排序和转换等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四:MVC之LINQ方法语法

 

 

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

查询语法,方法语法

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

LINQ的优势


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

 

这种可以看这个, 这些字我都是复制的 给你们链接看看  https://blog.youkuaiyun.com/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>  // 由于是多个参数, 所以 带了参数
}

 

 

   完毕,  欢迎交流!!!

posted @ 2018-06-07 14:44 Cgrain 阅读( ...) 评论( ...) 编辑 收藏
API:应用编程接口,是一个新的(API)应用编程接口 本质上它是命名空间和类的一个集合,他的目标是:查询任意来源的数据。 数据库、业务对象、XML文件、一个数据集 1、所需要数据均出自相同的数据源,可能性很小。数据库、业务对象、XML文件、一个数据集,Web服务端 2、访问数据的难易程度完全取决于数据的存储位置。访问一个内存中的对象会比访问XML文件数据库容易。 3、原数据自身一般不是最主要显示的结果。一旦要进行整理,它就须要排序、修改、分组、调序。循环遍历,合并入一个数据池,等等。 List<Book> book=GetBooks(); //排序 Books.SortByPrice(delegate(Book first,Book second)) { Return((double)(second.Price-first.Prince)); } //遍历运算求总计 Double totallncome=0; Books.Foreach(delegate(Book book)) { Totallcome+=(book.Price*book.TotalSales); } 以上六行包含了排序,循环,合并运算,价格数据不是通过不同的类别的电子表格,Web服务或XML输入的 让数据源更易于访问,可以连接不同的数据源的数据,并且对他们执行标准化的数据处理操作,全部只需要一行代码完成。 例如:提供可以确保所有数据字段是通用类的操作,这样就必担心从数据库获取数据时类型正确转换问题。 一些数据源本没有DataProvider的支持,可以提供一种措施易于开发人员做功能扩展,创建一个支持这些数据源的Provider。 Var Query=from book in Books Where book.QuarterlySales>0 Select book=>{Name,(Price*QuarterlySales)} 个属性和一个静态方法,该方法把五本书列表返回给任何需要该数据的页面,这里有一个C#3.0语言中的一个特性一一对象新转化器(object)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值