Q:

Python-like list unpacking in C#?

In python, I can do something like this:
List=[3, 4]

def Add(x, y):
    return x + y

Add(*List) #7

Is there any way to do this or something similar in C#? Basically I want to be able to pass a List of arguments to an arbitrary function, and have them applied as the function's parameters without manually unpacking the List and calling the function explicitly specifying the parameters.

A:

Well, the closest would be reflection, but that is on the slow side... but look at MethodInfo.Invoke...

A:

You can use the params keyword when defining your method and then you can directly put your list (after calling ToArray) in your method call.
public static void UseParams(params object[] list)
{
        for (int i = 0; i < list.Length; i++)
        {
            Console.Write(list[i] + " ");
        }
        Console.WriteLine();
}

...which you can later call with the following.
object[] myObjArray = { 2, 'b', "test", "again" };
UseParams(myObjArray);

For reference: http://msdn.microsoft.com/en-us/library/w5zay9db.aspx

