Key value pairs in C# Params

前端 未结 8 2640
后悔当初
后悔当初 2021-02-11 14:55

I\'m looking for a way to have a function such as:

myFunction({\"Key\", value}, {\"Key2\", value});

I\'m sure there\'s something with anonymous

8条回答
  •  迷失自我
    2021-02-11 15:42

    Using a dictionary:

    myFunction(new Dictionary(){
      {"Key", value}, 
      {"Key2", value}});
    

    Which is straight forward, you need only one new Dictionary, not for each argument. It's trivial to get the keys and values.

    Or with an anonymous type:

    myFunction(new {
      Key = value, 
      Key2 = value});
    

    Which is not very nice to use inside the function, you'll need reflection. This would look something like this:

    foreach (PropertyInfo property in arg.GetType().GetProperties())
    {
      key = property.Name;
      value = property.GetValue(arg, null);
    }
    

    (Staight from my head, probably some errors...)

提交回复
热议问题