请教Linq中Group By 的字段如何根据条件改变
public bool CheckIsRepeat(List<CSD_ORD_PosData> TxtList)
{
var q = from p in TxtList
//group p by new { p.BankCardID, p.TradingCode, p.TradingTime } into g
group p by new { p.OrderID, p.PinID, p.CertificateNo, p.BatchID} into g
where g.Count() > 1
select new
{
g.Key
};
if (q.Count() > 0)
return false;
return true;
}
想实现 string.IsNullOrEmpty(p.OrderID) ? p.Phone : p.OrderID这种效果,订单为空,使用手机号分组 --------------------编程问答-------------------- 增加一个只读属性OrderOrPhone,get{return string.IsNullOrEmpty(p.OrderID) ? p.Phone : p.OrderID;}
然后根据这个属性排序 --------------------编程问答--------------------
public bool CheckIsRepeat(List<CSD_ORD_PosData> TxtList)
{
var q = (from p in TxtList
where !string.IsNullOrEmpty(p.OrderID)
group p by new { p.OrderID, p.PinID, p.CertificateNo, p.BatchID} into g
where g.Count() > 1
select g.Key).Count();
var p = (from p in TxtList
where string.IsNullOrEmpty(p.OrderID)
group p by new { p.Phone, p.PinID, p.CertificateNo, p.BatchID} into g
where g.Count() > 1
select g.Key).Count();
if (p+q > 0)
return false;
return true;
}
补充:.NET技术 , LINQ