Basically (whereas you are using the EF (Entity Framework)):
MeuContexto db = new MeuContexto();//Representação das entidades do seu Banco de dados
ICollection<Offline> offline = db.Offline; //Todos os registros da tabela offline são passados para essa coleção
ICollection<Online> online = db.Online;//Mesmo que o de cima só que para tabela online
var filtrado = online.Where(x =>//x é a representação de um item na lista online no caso ele é um objeto "Online", obs: pode ser qualquer nome
/*Where é a mesma coisa q o where no sql,
vai pegar uma lista onde os registros "batem" com a condição especificada*/
!offline.Any(y => //y é a mesma coisa q x só que ele é um objeto "Offline"
/*O método Any retorna true se algum item bater com as condições especificadas, no caso:
offline.chave == online.chave*/
y.chave == x.chave
)
);
/* Ou seja filtrado vai receber uma collection de "Online" onde:
Os registros onde "Where"
não "!"
tem incidencia de chaves iguais na tabela offline "Any(y => y.chave == x.chave)" */