1. Anonymous types
public class Person
{
public int Age { get; set; }
public string Name { get; set; }
List<Person> friends = new List<Person>();
public List<Person> Friends
{
get { return friends; }
}
Location home = new Location();
public Location Home
{
get { return home; }
}
public Person()
{
}
public Person(string name)
{
Name = name;
}
}
// Initalizer
class ObjectInitializer
{
static void Main()
{
Person tom = new Person
{
Name = "Tom",
Age = 6,
Home = { Town = "Reading", Country = "UK" },
Friends =
{
new Person { Name = "Alberto" },
new Person("Max"),
new Person { Name = "Zak", Age = 4 },
new Person("Ben"),
new Person("Alice")
{
Age = 6,
Home = { Town = "Twyford", Country="UK" }
}
}
};
}
}
// anonymous
static void Main()
{
var tom = new { Name = "Tom", Age = 6 };
var holly = new { Name = "Holly", Age = 34 };
var jon = new { Name = "Jon", Age = 33 };
Console.WriteLine("{0} is {1} years old", jon.Name, jon.Age);
}
//AnonymousTypeInArray
class AnonymousTypeInArray
{
static void Main()
{
var family = new[]
{
new { Name = "Holly", Age = 34 },
new { Name = "Jon", Age = 33 },
new { Name = "Tom", Age = 6 },
new { Name = "Robin", Age = 3 },
new { Name = "William", Age = 3 }
};
int totalAge = 0;
foreach (var person in family)
{
totalAge += person.Age;
}
Console.WriteLine("Total age: {0}", totalAge);
}
}
// class Projection
{
static void Main()
{
List<Person> family = new List<Person>
{
new Person { Name="Holly", Age=34 },
new Person { Name="Jon", Age=33 },
new Person { Name="Tom", Age=6 },
new Person { Name="Robin", Age=4 },
new Person { Name="William", Age=4 }
};
var converted = family.ConvertAll(delegate(Person person)
{ return new { person.Name, IsAdult = (person.Age >= 18) }; }
);
foreach (var person in converted)
{
Console.WriteLine("{0} is an adult? {1}",
person.Name, person.IsAdult);
}
}
}