Linq - JackHu88/Comm GitHub Wiki
Join查询就交集
var lstUpdateItems =
(from hcdb in lstHCDBUDI
join ras in lstRASUDI on
new
{
TypeModelID = hcdb.TypeModelID,
UDIID = hcdb.UDIID
} equals
new
{
TypeModelID = ras["TypeModelID"] == null ? "" : ras["TypeModelID"].ToString(),
UDIID = ras["UDIID"] == null ? "" : ras["UDIID"].ToString()
}
into temp
from ras in temp.DefaultIfEmpty()
select new UDI
{
TypeModelID = ras == null ? "" : ras["TypeModelID"].ToString(),
UDIID = ras == null ? "" : ras["UDIID"].ToString(),
MainDICode = hcdb.MainDICode,
UDI21 = hcdb.UDI21,
UDI22 = hcdb.UDI22,
UDI23 = hcdb.UDI23,
UDI24 = hcdb.UDI24,
UDI30List = hcdb.UDI30List,
UDI31List = hcdb.UDI31List
}).Where(item => item.TypeModelID != "" && item.UDIID != "").ToList();
实现NOT IN的查询
//var lstNewItems = lstHCDBUDI.Except(lstUpdateItems).ToList();
var lstNewItems = lstHCDBUDI.Where(hcdb => !lstUpdateItems.Any(u => u.TypeModelID == hcdb.TypeModelID && u.UDIID == hcdb.UDIID)).ToList();