If you are familiar with ASP.NET MVC then you might have seen or used a method like this where the method take an object as a parameter and you can pass multiple key pair value through that object. Here is an example of ASP.NET MVC method ActionLink which takes five parameters (overloaded) as input and generate a HTML friendly link:

@Html.ActionLink(“Link text”, “ActionName”, “ControllerName”, 
    new { id = 1 }, 
    new { @class = “html-link”, title = “Some title”, data_id = 1 })


<a href="/ControllerName/ActionName?id=1"  
    class="html-link" title="Some title" data-id="1">Link text</a>

As you can see, here fourth and fifth parameter is an object and we are able to pass multiple key pair value to those objects. It’s very useful when you need one or more anonymous key pair value as input with a friendly way to call the method. Now, if you have a method taking an object as input, like above, you need to convert that object to IDictionary<string, object>.