Anonymous types provide an easy way to encapsulate different properties in a single object. Unlike properties in a class, the properties of anonymous type objects are read-only.
Declare and use anon type objects
declaration
var loginCredentials = new { Username = "suresh", Password = "******" };
Console.WriteLine($"Username {loginCredentials.Username.ToString()}");
Console.WriteLine($"Password {loginCredentials.Password.ToString()}");
After assigning values to the Username and Password properties, they cannot be altered *(they’re readonly).
Anon objects in LINQ
Usually, anon data types are used in the select
clause to return a specific subset of properties for each object in the collection.
we have the employee class
public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
List<Employee> employees = // whatever ...
// we convert an Employee into an anon object type with a subset of properties
var employeeDetails = from emp in employees
select new { Id = emp.ID, Name = emp.Name };
Reference(s)
https://www.syncfusion.com/blogs/post/understanding-csharp-anonymous-types