Take the 2-minute tour ×

Is there an easy way to create and Object and set properties in C# like you can in Javascript.

Example Javascript:

var obj = new Object;

obj.value = 123476;
obj.description = "this is my new object";
obj.mode = 1;
share|improve this question
Errm, do you mean creating an object in general or creating an actual System.Object and adding properties dynamically? –  Yuck Jul 8 '11 at 14:29
add comment

4 Answers

up vote 12 down vote accepted

try c# anonymous classes

var obj = new { 
    value = 123475, 
    description = "this is my new object", 
    mode = 1 };

there are lots of differences though...

@Valera Kolupaev & @GlennFerrieLive mentioned another approach with dynamic keyword

share|improve this answer
add comment

In case, it you want to create un-tyed object use ExpandoObject.

dynamic employee, manager;

employee = new ExpandoObject();
employee.Name = "John Smith";
employee.Age = 33;

manager = new ExpandoObject();
manager.Name = "Allison Brown";
manager.Age = 42;
manager.TeamSize = 10;

Your's other option is to use anonymous class , but this will work for you, only if you would use it in scope of method, since it can't be passed outside or as a parameter.

But, IMO, to take full advantage of C#, it's better to switch programming paradigm to strongly-typed, that is C# is designed for.

share|improve this answer
add comment

In C# you could do:

var obj = new SomeObject {
    value = 123476,
    description = "this is my new object",
    mode = 1

EDIT: Holding this here pending clarification from OP as I may have misunderstood his intentions.

share|improve this answer
add comment

The way to do this is you use C# 4.0 Dynamic types like Expando Object... see this topic:

How to create a class dynamically

share|improve this answer
add comment

Your Answer


