LeetCode: House Robber I C#
Your first solution's time complexity is non-trivial to determine, and it won't work for long lists because it'll run out of stack, while your second solution obviously needs linear time (optimal) and is unlikely to run out of memory, so I would scrap the first one right away.

The first solution is also inferior because of the _mem member. There is no reason to create this in Rob, and there is no reason to make it a member. Making it a member means:
 - this code can't be called concurrently
 - it leaves memory hanging around once the method exists
 - it is susceptible to interference by other members
 - it is hard to reason about than a variable because it is removed from the method that use it

One nice solution would be to make _mem a local variable, and Helper a local function in Rob: that way you don't have to pass nums and _mem around, and there is no way to mis-use the code. Then you can make all these methods static.

Naming

The naming could be better:


_mem and memo are both cryptic (_mem is providing memoisation, and memo is arguably not)
Rob and Rob2 convey almost nothing
Helper says nothing at all (what is it helping? what does it do?)


Documentation


Please take the time to add documentation. It doesn't matter if you are practising for an interview: real code needs documentation (so that it can be consumed and maintained), writing it is a skill worth practising, and doing so helps you to better reason about your code and solidify edge-case behaviour.


Tests

The tests are limited and not very good. They do not test the case where you need to 'skip' a pair (e.g. 9, 1, 1, 9) and do not cover any edge cases.

Both methods will throw on a NullReferenceException on null input, when they should probably throw a nice ArgumentException so that the caller knows immediately what they did wrong: ideally this would be tested.