Creating Dynamic Arrays and Lists with Dynamic and ExpandoObject in C#
By Tan Lee Published on Jan 09, 2025 747
In this example, we demonstrate creating a dynamic list where the number of objects is not known in advance.
Let's assume we need to filter a list of people based on age criteria.
dynamic output = new List<dynamic>(); dynamic row1 = new ExpandoObject(); row1.Name = "Alice"; row1.Age = 25; output.Add(row1); dynamic row2 = new ExpandoObject(); row2.Name = "Bob"; row2.Age = 17; output.Add(row2);
Imagine you have a JSON object containing a list of people, and you need to extract only those whose age is 18 or older.
{ "people": [ { "name": "Alice", "age": 25 }, { "name": "Bob", "age": 17 }, { "name": "Charlie", "age": 30 } ] }
You can write the following C# code to process this data dynamically:
// Deserialize input JSON into a dynamic object dynamic input = JsonConvert.DeserializeObject(myJsonData); // Create an empty dynamic list for the output dynamic output = new List<dynamic>(); // Iterate through the people array and filter based on age foreach (var person in input.people) { if (person.age >= 18) { // Create a dynamic ExpandoObject for each person that meets the age criteria dynamic row = new ExpandoObject(); row.name = person.name; row.age = person.age; // Add the dynamic object to the output list output.Add(row); } } // Serialize the output list back to JSON string outputJson = JsonConvert.SerializeObject(output);
Output
[ { "name": "Alice", "age": 25 }, { "name": "Charlie", "age": 30 } ]
This example shows how you can filter data dynamically using C# ExpandoObject
and a List<dynamic>
, allowing you to handle variable data structures effectively.
Categories
Popular Posts
Bootstrap 4 Login Page Template
Nov 11, 2024
Responsive Admin Dashboard Template
Nov 11, 2024
RuangAdmin Template
Nov 13, 2024
Gentella Admin Template
Nov 14, 2024