四: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>  // 由於是多個參數, 所以 帶了參數
}

 

 

   完畢,  歡迎交流!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM