public class LambdaHelper
{
/*
* ●from子句:指定查詢操作的數據源和範圍變量。
*
* ●select子句:指定查詢結果的類型和表現形式。
*
* ●where子句:指定篩選元素的邏輯條件。
*
* ●let子句:引入用來臨時保存查詢表達式中的字表達式結果的範圍變量。
*
* ●orderby子句:對查詢結果進行排序操作,包括升序和降序。
*
* ●group子句:對查詢結果進行分組。
*
* ●into子句:提供一個臨時標識符。join子句、group子句或select子句可以通過該標識符引用查詢操作中的中堅結果。
*
* ●join子句:連接多個用於查詢操作的數據源
*/
/// <summary>
/// 獲取List
/// </summary>
/// <returns></returns>
public List<UsersModel> GetUsersList()
{
List<UsersModel> list = new List<UsersModel>();
return list;
}
#region 拉姆達表達式實現Sum、Min、Max操作
#region GetIntSum 對GetIntSum類型進行求和
/// <summary>
///GetIntSum 求和int
/// </summary>
/// <returns></returns>
public int GetIntSum()
{
List<UsersModel> usersModels = new List<UsersModel>();
//獲取sum的合計數據
int sumNum = usersModels.Where(cp => cp.UpdateUser > 0).Sum(cp => cp.UpdateUser);
//獲取最大值
var maxNum = usersModels.Max(cp => cp.UpdateUser);
//獲取最小值
var minNum = usersModels.Min(cp => cp.UpdateUser);
//查詢最大的一條數據
usersModels.OrderByDescending(cp => cp.UserID).FirstOrDefault();
return maxNum;
}
#endregion
#region GetDoubleSum 對Double類型進行求和
/// <summary>
/// 對doubel類型進行求和
/// </summary>
/// <returns></returns>
public void GetDoubleSum()
{
List<UsersModel> usersModels = new List<UsersModel>();
//獲取doubleSum的合計數據
double doubleSum = usersModels.Where(cp => cp.DoubleMoney > 0).Sum(cp => cp.DoubleMoney);
//獲取最大值
double maxNum = usersModels.Max(cp => cp.DoubleMoney);
//獲取最小值
double minNum = usersModels.Min(cp => cp.DoubleMoney);
}
#endregion
#region GetDecimalSum 對Decimal類型進行求和
/// <summary>
/// 對Decimal類型進行求和
/// </summary>
public void GetDecimalSum()
{
List<UsersModel> usersModels = new List<UsersModel>();
//獲取doubleSum的合計數據
decimal doubleSum = usersModels.Where(cp => cp.Money > 0).Sum(cp => cp.Money);
//獲取最大值
decimal maxNum = usersModels.Max(cp => cp.Money);
//獲取最小值
decimal minNum = usersModels.Min(cp => cp.Money);
}
#endregion
#endregion
#region 拉姆達表達式實現forEash循環
/// <summary>
/// 拉姆達表達式實現for循環
/// </summary>
public void ForEachToLambda()
{
var usersModels = GetUsersList();
usersModels.ForEach(a =>
{
if (a.UpdateUser > 20)
{
//這裏繼續調用某一個方法
Console.WriteLine(a.UpdateUser);
}
});
}
#endregion
#region 拉姆達表達式實現where篩選
/// <summary>
/// 條件篩選 where
/// </summary>
public void ConditionScreen()
{
var usersModels = GetUsersList();
// 條件篩選 where單個
var model = usersModels.Where(cp => cp.UpdateTime > DateTime.Now).FirstOrDefault();
// 條件篩選 whereList
var usersList = usersModels.Where(cp => cp.UpdateTime > DateTime.Now && cp.UpdateUser > 0);
//升序
var listAsc = usersModels.OrderBy(cp => cp.UpdateTime).ToList();
//降序
var listDes = usersModels.OrderByDescending(cp => cp.UpdateTime).ToList();
//包含p.Name.Contains
var containsList = usersModels.Select(cp => cp.UserName.Contains("demo")).ToList();
}
#endregion
#region 拉姆達表達式實現GroupBy篩選
/// <summary>
/// 對list進行分組
/// </summary>
public void GroupByList()
{
var usersModels = GetUsersList();
//單一:根據用戶進行分組
var dic = usersModels.GroupBy(a => a.CreateUser);
foreach (var item in dic)
{
Console.WriteLine(item.Key);
foreach (var sub in item)
{
Console.WriteLine("\t\t" + sub.UpdateTime + " " + sub.UpdateUser);
}
}
//
var dic2 = usersModels.GroupBy(a => a.CreateUser, a => a.CreateTime).ToList();
//多個條件進行分組GroupBy
var group = usersModels.GroupBy(x => new { x.CreateTime, x.UpdateUser, x.UserID, x.UserName }).ToList();
}
#endregion
#region 拉姆達表達式實現Select操作
/// <summary>
/// 拉姆達表達式實現Select操作
/// </summary>
public void LambdaBySelectList()
{
var list = GetUsersList();
//1.獲取userNameList
List<string> userNameList = list.Select(cp => cp.UserName).ToList();
//2.獲取userNameList 中第一條條數據
string str = list.Select(cp => cp.UserName).FirstOrDefault();
//3.獲取滿足條件的第一條記錄
UsersModel usersModel = list.Where(cp => cp.UserName== "Manager"&& cp.UserID>0).FirstOrDefault();
//4.Skip 排序後獲取List中的前10條記錄
List<UsersModel> skipList= list.Skip(10).ToList();
//5.獲取List某一字段的平均值
var averNum = list.Average(cp => cp.UserID);
}
#endregion
#region linq 表達式的使用
/// <summary>
/// linq 表達式的使用
/// </summary>
public void GetLinq()
{
int[] arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var query2 = from n in arr
where n > 6
select n;
List<UsersModel> usersModels = new List<UsersModel>();
var selectUserList = from user in usersModels where user.IsValid > 0 select user;
}
#endregion
}
~~~
LambdaHelper
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.