Basically anonymous object are used to call a method without a method name by using an delegate, before C# 3.0 delegate is used to call by declaring an method name, anonymous is introduced in C# 3.0 to call a delegate or event. And it is related to lambda expression used in linq. For more clear understanding you can visit below link https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/anonymous-functions
var d=db.tablename.where(x=>x.name=="dsd");=> labmda expression Is Anonymous object in c# We can use in delegate also.