ventos @UnHooking com Lambdas em C #

Muitas vezes, encontro uma situação em que quero me inscrever em um evento, mas quero usar um lambda para fazer isso:

public class Observable
{
    public event EventHandler SomethingHappened;

    public void DoSomething()
    {
        // Do Something...
        OnSomethingHappened();
    }
}

// Somewhere else, I hook the event
observable.SomethingHappened += (sender, args) => Console.WriteLine("Something Happened");

O problema que encontro é que não sei como desengatar o evento. Como o lambda cria um delegado anônimo sob o capô, não tenho nada para chamar-= em

gora, eu poderia apenas criar um métod

private void SomethingHappened(object sender, EventArgs args)
{
    Console.WriteLine("Something Happened");
}

E então eu posso ligar / soltar tudo o que eu quero:

observable.SomethingHappened += SomethingHappened;
observable.SomethingHappened -= SomethingHappened;

Mas eu realmente gostaria de usar minha lambda. Em um exemplo mais complicado, as lambdas são realmente úteis aqu

Tenho certeza de que estou sem sorte ... mas eu queria saber se alguém lá fora descobriu uma maneira de fazer isso?

questionAnswers(3)

yourAnswerToTheQuestion