我有一张表
ID Name ExcelID
1 a 1
2 b 1
3 a 2
4 b 2
5 c 2
我需要显示两个Excel ID之间的重复项,因此输出应该显示'C',因为它是excelid 1和amp;之间的唯一值。 2.出于这个原因,我使用下面的查询来比较两组数据。
var assets = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataRatedFinancialAssetBase>()
.Where(c => c.FORATExcelId == fptexcel)
.GroupBy(x => x.Name)
.Select(y => y.FirstOrDefault()).ToList();
var assetsold = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataRatedFinancialAssetBase>()
.Where(c => c.FORATExcelId == fptexcelprevious)
.GroupBy(x => x.Name)
.Select(y => y.FirstOrDefault()).ToList();
我已将数据分组为两个列表,一个是excel id 1,第二个查询是2。
但是,如果我尝试使用except方法来显示不同的值,它只显示两个列表中的所有值
答案 0 :(得分:0)
var uniqueItems = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataRatedFinancialAssetBase>()
.GroupBy(p => p.Name)
.Where(p => p.Count() == 1)
.Select(p => p.FirstOrDefault());
应该做什么?
在您提供的列表上尝试,它返回整齐的项目(5,“c”,2)
答案 1 :(得分:0)
您可以搜索只获得一个结果的名称:
var uniqueResult = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataRatedFinancialAssetBase>()
.Where(c => c.FORATExcelId == fptexcel || c.FORATExcelId == fptexcelprevious)
.GroupBy(x => x.Name)
.Where(c => c.Count() == 1)
.Select(y => y.FirstOrDefault()).ToList();