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(); }
你們看看注釋 ( 懶得打了 你們了解一下,下面才是正確代碼)
@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> // 由於是多個參數, 所以 帶了參數
}
完畢, 歡迎交流!!!