The guidelines I follow for C# has "use var where it's obvious, but explicitly type when not".
So for example I'd write:
var x = new List<Foo>();
Because writing: List<Foo> x = new List<Foo>();
Feels very redundantWhereas I'd write:
List<Foo> x = FooBarService.GetMyThings();
Because it's not obvious what the type is otherwise ( Some IDEs will overlay hint the type there though ).Although with newer language features you can also write:
List<Foo> x = new();
Which is even better.