个人开发中,常用到的一些linq和lambda表达式,今天整理了一下,希望能够帮助到大家^_^
1.在List中查询某元素,并返回另一个List
List<string> listLoadMouldNo = listAllLoad.Select(m => m.MouldNo).ToList(); //查询出了listAllLoad中MouldNo元素,并放入另一个List.
2.筛选出List中符合条件的,放入另一个List
List<DMDXSeg> lstSeg = listAllDMDX.Where(m => m.SegCode == 1012).ToList();
3.找出List中某元素值包含于另一个List中的,放入另一个List
List<DMDXSeg> list = listAllInv.Where(m => listAllMould.Contains(m.MouldNo)).ToList(); //找出listAllInv中MouldNo在listAllMould中存在的部分
4.去重,以List中某元素为基准,去除次元素相同的记录
List<MouldDMDXInfo> listBM_Distinct = listAllMouldBM.Where((m, i) => listAllMouldBM.FindIndex(z => z.MouldNo == m.MouldNo) == i).ToList(); //去除MouldNo相同的记录
5.以List中某元素为查询条件,判断List中是否存在数据
list.Exists(x => x.NGTYPE == 1); //判断List是否存在NGTYPE为1的元素
6.找出DataTable中interval最大的那条数据
DataRow[] oTmp = dt.Select("interval = max(interval)");
7.以某字段为查询条件,查询DataTable中符合条件的数据
DataRow[] drs = dt.AsEnumerable().Where<DataRow>(m => m["name"].Equals("小明")).ToArray(); //找出DataTable中name为小明的数据
未完待续~~