list is
immutable data structure, like string.
So you cannot change the list by passing it to method, only if you pass it as ref.
If you want a list where you can add values using extension method use System.Collections.Generic.List.
This is sample in C# with string demonstrating the same problem:
static class P
{
public static void push(this string s, string p) { s += p; }
}
class Q
{
static void Main()
{
string x = "";
x.push("a");
System.Console.WriteLine(x);