更多訪問:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions
查詢:
Select() 、SelectMany()
查詢要注意 IEnumerable<T>和IQueryable<T>
List<Student> _students = new List<Student>()
{
new Student {S_="01", Sname= "趙雷", Sage= DateTime.Parse("1990-01-01"), Ssex= "男"},
new Student{S_= "02", Sname= "錢電", Sage= DateTime.Parse("1990-12-21"), Ssex= "男"},
new Student{S_= "03", Sname= "孫風", Sage= DateTime.Parse("1990-05-20"), Ssex= "男"},
new Student{S_= "04", Sname= "李雲", Sage= DateTime.Parse("1990-08-06"), Ssex= "男"},
new Student{S_= "05", Sname= "周梅", Sage= DateTime.Parse("1991-12-01"), Ssex= "女"},
new Student{S_= "06", Sname= "吳蘭", Sage= DateTime.Parse("1992-03-01"), Ssex= "女"},
new Student{S_= "07", Sname= "鄭竹", Sage= DateTime.Parse("1989-07-01"), Ssex= "女"},
new Student{S_= "08", Sname= "王菊", Sage= DateTime.Parse("1990-01-20"), Ssex= "女"}
};
Select() 為每個源值生成一個結果值。 因此,總體結果是一個與源集合具有相同元素數目的集合。 與之相反,SelectMany() 將生成單一總體結果,其中包含來自每個源值的串聯子集合。
_students.Select(m => m.Sname);//獲取當前_students 中所有Sname
var i=_students.SelectMany(m => m.Sname);
// _students.Select(m => m.Sname).First();//返回一個序列的第一個元素。
//_students.Select(m => m.Sname).FirstOrDefault();//返回序列中的第一個元素;如果序列中不包含任何元素,則返回默認值。
//_students.Where(m => m.Sname == "");//條件查詢
_students.Skip(2);//跳過指定的數量的序列中的元素,然后返回剩余元素。
_students.Take(5);//從序列的開頭返回指定的數量的連續元素。 相當於 Sql 中Top
int PageSize=5 , PageIndex =2;
_students.Take(PageSize * PageIndex).Skip(PageSize * (PageIndex - 1));//實現分頁 PageSize和PageIndex 從客戶端傳入
Contains()方法使用:
string[] str = { "孫風", "趙雷" };
var y = _students.Where(m => str.ToList().Select(n => n).Contains(m.Sname));//2條數據
y = _students.Where(m => m.Sname.Contains("趙雷"));//模糊查詢
List<string> StrList = new List<string>() { "孫風", "趙雷" };
var x = _students.Where(m => StrList.Select(n => n).Contains(m.Sname));//2條數據
return _students;