Calculating Fibonnaci sequence lazily Implementation: 

IEnumerable&lt;BigInteger&gt; Fibs()
{
    BigInteger a = 0;
    BigInteger b = 1;
    while(true)
    {
        b = a + (a = b);
        yield return a;
    }
}


Usage:

void Main()
{
    // take first 100 fib numbers
    var fibs = Fibs().Take(100);
}


How can I improve this?
That's a pretty clever implementation. To improve this, I would take some of the cleverness out of it. In particular:

while (true)
{
    BigInteger next = a + b;
    a = b;
    b = next;
    yield return next;
}


2 lines longer, but no unnecessary cleverness. Perfectly clear, nice and simple, and should be just as efficient. It's good general rule to not try to be too clever. Keep it simple.

Also, FibonacciSequence would be a better name than Fibs.

Finally, as a tiny remark, put a space before opening parenthese of the while condition (like I did above, different from the original code).