Assuming you are looking to see if an item exists with the same MsgId, this should work:
foreach (var GatewayMessageDetails in GWmsgDetailsList)
{
if(!GWmessageDetailsList.Any(g=> g.MsgId == GatewayMessageDetails.MsgId)
GWmessageDetailsList.Add(GatewayMessageDetails);
}