c# dt.AsEnumerable ().Join用法
阿新 • • 發佈:2020-12-08
dt1.AsEnumerable().Join(dt2.AsEnumerable(), r1 => r1.Field<object>("id"), r2 => r2.Field<object>("id"), (r1, r2) => r1); //查詢非小題非組合題,分數為空的序號 List<int> nilScoreRow = detailTable.AsEnumerable().Where(x => LibSysUtils.ToDecimal(x["pre_score"]) == 0). Where(x => LibSysUtils.ToBoolean(x["is_minor"]) == false). Where(x => x.RowState != DataRowState.Deleted). Where(x => LibSysUtils.ToInt(x["quiz_type"]) != (int)EnumERSType.CombinationType). Select(x => LibSysUtils.ToInt(x["sort_no"])).ToList(); //組合題 EnumerableRowCollection<DataRow> combinationList = detailTable.AsEnumerable(). Where(x => LibSysUtils.ToInt(x["quiz_type"]) == (int)EnumERSType.CombinationType). Where(x => x.RowState != DataRowState.Deleted); //查詢有小題分數的組合題 List<int> nilCombinationList = detailTable.AsEnumerable().Where(x => LibSysUtils.ToBoolean(x["is_minor"]) == true). Where(x => LibSysUtils.ToDecimal(x["pre_score"]) == 0). Where(x => x.RowState != DataRowState.Deleted). Join(combinationList, x => x.Field<object>("parent_id"), y => y.Field<object>("quiz_id"), (x, y) => y) .Select(y=> LibSysUtils.ToInt(y["sort_no"])).Distinct().ToList(); nilScoreRow.AddRange(nilCombinationList);