Sunday, August 21, 2016

C# Simple Delegate Example

C# Simple Delegate Example


A delegate in C# is similar to a function pointer in C or C++. Using a delegate allows the programmer to encapsulate a reference to a method inside a delegate object. The delegate object can then be passed to code which can call the referenced method, without having to know at compile time which method will be invoked.



Below C# Program Displays Results using Delegates. Here Delegate is a type which holds the method(s) reference in an object. It is also referred to as a type safe function pointer.



using System;

namespace Zappmania.Example.Delegate

delegate int MyDelegate(int a, int b);

public class TestClass

public static void Main(string[] args)

var myClassObj = new MyClass();
var sum = new MyDelegate(myClassObj.Add);
var multiply = new MyDelegate(myClassObj.Multiply);
var subtract = new MyDelegate(myClassObj.Subtract);

var sumResult = sum(23, 32);
Console.WriteLine("Result for Add is " + sumResult);
var multiplyresult = multiply(25, 2);
Console.WriteLine("Result for Multiply is " + multiplyresult);
var subtractResult = subtract(75, 42);
Console.WriteLine("Result for Subtract is " + subtractResult);

Console.ReadLine();




internal class MyClass

internal int Add(int a, int b)

return a + b;

internal int Multiply(int a, int b)

return a * b;

internal int Subtract(int a, int b)

return a - b;





Result for above code is :



Result for Add is 55
Result for Multiply is 50
Result for Subtract is 33


C# Simple Delegate Example

LINQ Aggregate Methods C#-Example

LINQ Aggregate Methods C#


LINQ is language integrated query which allow programmers to query various objects without worrying about underlying implementations of these objects.


There are number of LINQ Aggregate methods defined in Enumerable class


  • Enumerable.Sum

  • Enumerable.Max

  • Enumerable.Min

  • Enumerable.Count

  • Enumerable.LongCount

  • Enumerable.Average

  • Enumerable.Aggregate

lets see them one by one.


Enumerable.Sum


Enumerable.Sum is extension method from System.Linq namespace. It returns sum of numeric values in collection.

Lets see this in below code example:



using System;
using System.Collections.Generic;
using System.Linq;

namespace Zappmania.Example.LINQ.AggregateMethods


public class Program

public static void Main(string[] args)

//Example - sum of values from list of integer numbers.
var intValueList = new List<int> 2, 3, 5, 8;

int intResult = intValueList.Sum();

Console.Write("The result is " + intResult);

// Example - sum of values from list of decimal numbers.

var decimalValueList = new List<decimal> 8.9m, 12.2m, 18.19m, 40.3m ;
decimal decimalResult = decimalValueList.Sum();
Console.Write("The result is " + decimalResult);


//Example - Sum on empty collection returns 0.

var emptyList = new List<int>(); // empty list
var emptyResult = emptyList.Sum();
Console.Write("The result is " + emptyResult);

//Example - Gets sum of values from list of nullable integers.

var nullableIntValueList = new List<int?> 2, 9, null, 15 ;
int? sum = nullableIntValueList.Sum();
Console.Write("The result is " + sum);

Console.ReadLine();





And result of above code is



The result is 18
The result is 79.59
The result is 0
The result is 26


Enumerable.Max


Enumerable.Max is extension method from System.Linq namespace. It returns maximal value of numeric collection.

Lets see this in below code example:



using System;
using System.Collections.Generic;
using System.Linq;

namespace Zappmania.Example.LINQ.AggregateMethods


public class Program

public static void Main(string[] args)

//Example - Max value from list of integer numbers.
var intValueList = new List<int> 2, 3, 5, 8;
int intResult = intValueList.Max();
Console.WriteLine("The result is " + intResult);

// Example - Max value from list of decimal numbers.

var decimalValueList = new List<decimal> 8.9m, 12.2m, 18.19m, 40.3m ;
decimal decimalResult = decimalValueList.Max();
Console.WriteLine("The result is " + decimalResult);


//Example - Max on empty collection returns 0.

//var emptyList = new List<int>(); // empty list
//var emptyResult = emptyList.Max(); //throws exception
//Console.WriteLine("The result is " + emptyResult);

//Example - Gets sum of values from list of nullable integers.

var nullableIntValueList = new List<int?> 2, 9, null, 15 ;
int? max = nullableIntValueList.Max();
Console.WriteLine("The result is " + max);

Console.ReadLine();




And result of above code is




The result is 8
The result is 40.3
The result is 15


Enumerable.Min


Enumerable.Min is extension method from System.Linq namespace. It returns minimal value of numeric collection.


Lets see this in below code example:



using System;
using System.Collections.Generic;
using System.Linq;

namespace Zappmania.Example.LINQ.AggregateMethods


public class Program

public static void Main(string[] args)

//Example - Min value from list of integer numbers.
var intValueList = new List<int> 2, 3, 5, 8;
int intResult = intValueList.Min();
Console.WriteLine("The result is " + intResult);

// Example - Min value from list of decimal numbers.

var decimalValueList = new List<decimal> 8.9m, 12.2m, 18.19m, 40.3m ;
decimal decimalResult = decimalValueList.Min();
Console.WriteLine("The result is " + decimalResult);


//Example - Min on empty collection returns 0.

//var emptyList = new List<int>(); // empty list
//var emptyResult = emptyList.Min(); //throws exception
//Console.WriteLine("The result is " + emptyResult);

//Example - Gets sum of values from list of nullable integers.

var nullableIntValueList = new List<int?> 2, 9, null, 15 ;
int? Min = nullableIntValueList.Min();
Console.WriteLine("The result is " + Min);

Console.ReadLine();




And result of above code is




The result is 2
The result is 8.9
The result is 2


Enumerable.Count


Enumerable.Count is extension method from System.Linq namespace. It counts number of items in collection.

Lets see this in below code example:


 

using System;
using System.Collections.Generic;
using System.Linq;

namespace Zappmania.Example.LINQ.AggregateMethods


public class Program

public static void Main(string[] args)

//Example - Counts number of items in a collection.
var intValueList = new List 2, 3, 5, 8;
int intResult = intValueList.Count();
Console.WriteLine("The result is " + intResult);

//Example - Counts number of items in a collection.
var decimalValueList = new List 8.9m, 12.2m, 18.19m, 40.3m ;
decimal decimalResult = decimalValueList.Count();
Console.WriteLine("The result is " + decimalResult);

//Example - Counts number of items in a collection.
var strValueList = new List "A", "B", "C" , "D", "E";
var strResult = strValueList.Count();
Console.WriteLine("The result is " + strResult);

//Example - Count on empty collection returns 0.

var emptyList = new List(); // empty list
var emptyResult = emptyList.Count;
Console.WriteLine("The result is " + emptyResult);

//Example - Counts number of items in nullable collection..

var nullableIntValueList = new List 2, 9, null, 15 ;
int? count = nullableIntValueList.Count();
Console.WriteLine("The result is " + count);

Console.ReadLine();





And result of above code is



The result is 4
The result is 4
The result is 5
The result is 0
The result is 4

Enumerable.Average


Enumerable.Average is extension method from System.Linq namespace. It computes average value of numeric collection.

Lets see this in below code example:


 

using System;
using System.Collections.Generic;
using System.Linq;

namespace Zappmania.Example.LINQ.AggregateMethods


public class Program

public static void Main(string[] args)

//Example - Computes average of int values items in a collection.
var intValueList = new List 2, 3, 5, 8;
var intResult = intValueList.Average();
Console.WriteLine("The result is " + intResult);

//Example - Computes average of decimal values items in a collection.
var decimalValueList = new List 8.9m, 12.2m, 18.19m, 40.3m ;
decimal decimalResult = decimalValueList.Average();
Console.WriteLine("The result is " + decimalResult);



//Example - Computes average of nullable int values items in a collection.

var nullableIntValueList = new List 2, 9, null, 15 ;
var average = nullableIntValueList.Average();
Console.WriteLine("The result is " + average);

Console.ReadLine();





And result of above code is




The result is 4.5
The result is 19.8975
The result is 8.66666666666667


Enumerable.Aggregate


Enumerable.Aggregate is C# version of fold or reduce function. It is extension method from System.Linq namespace.

Aggregate method applies a function to each item of a collection. For example, let’s have collection 8, 5, 4, 3 and the function Add (operator +) it does (((8+5)+4)+3).

Lets see this in below code example:


 

using System;
using System.Collections.Generic;
using System.Linq;

namespace Zappmania.Example.LINQ.AggregateMethods


public class Program

public static void Main(string[] args)

//Example - Sum using Aggregate method.
//This example use Aggregate method overload with only one parameter func.
//Into the func parameter there is passed lambda expression (anonymous method) which adds two numbers.
var intValueList = new List 2, 3, 5, 8;
var intResult = intValueList.Aggregate(func: (result, item) => result + item);
Console.WriteLine("The result is " + intResult);

//Example - Sum using Aggregate method.
//This example use Aggregate method overload with only one parameter func.
//Into the func parameter there is passed lambda expression (anonymous method) which adds two numbers.
var decimalValueList = new List 8.9m, 12.2m, 18.19m, 40.3m ;
var decimalResult = decimalValueList.Aggregate(func: (result, item) => result + item);
Console.WriteLine("The result is " + decimalResult);

//Example - there is passed named method Add instead of lambda expression.

intResult = intValueList.Aggregate(func: Add);
Console.WriteLine("The result is " + intResult);

decimalResult = decimalValueList.Aggregate(func: Add);
Console.WriteLine("The result is " + decimalResult);


Console.ReadLine();

private static int Add(int x, int y) return x + y;
private static decimal Add(decimal x, decimal y) return x + y;





And result of above code is




The result is 18
The result is 79.59
The result is 18
The result is 79.59



LINQ Aggregate Methods C#-Example

Saturday, August 20, 2016

LINQ Calculate Average File Size in Folder C#-Example

LINQ Calculate Size of Folder


LINQ is language integrated query which allow programmers to query various objects without worrying about underlying implementations of these objects.


Below C# Program Calculates average file Size of folder using LINQ. In other words the average size of file in a folder is found using LINQ functions.



using System;
using System.IO;
using System.Linq;

namespace Zappmania.Example.LINQ.GetAverageFileSize


public class Program

public static void Main(string[] args)

var destPath = @"c:\\Zappmania\\";
var dirfiles = Directory.GetFiles(destPath);
var avg = dirfiles.Select(file => new FileInfo(file).Length).Average();
avg = Math.Round(avg / 10, 1);
Console.WriteLine("The Average file size is 0 MB", avg);
Console.ReadLine();







LINQ Calculate Average File Size in Folder C#-Example

List all supported cultures name -C#

C#


List all supported cultures name


Below example will show you how to obtain the entire supported culture names. We use theSystem.Globalization.CultureInfo class to get this information. It provides a method called GetCultures() that returns an array of CultureInfo.


From this object we can get the culture name in languageCode-countryCode format and a culture name in English. Let see the code snippet below:


 


Click link for Download Code page : Zappmania_GlobalizationExample


using System;
using System.Collections.Generic;
using System.Globalization;

namespace Zappmania_GlobalizationExample.System.Globalization.Example

class MainCallingClass

static void Main(string[] args)

using (ListOfCultureInfo oListOfCulture = new ListOfCultureInfo())

oListOfCulture.GetListOfCulture();


class ListOfCultureInfo:IDisposable

CultureInfo[] cultures;
public void GetListOfCulture()

//
// Get the list of supported cultures filtered by the
// CultureTypes.
//
cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);

//
// Iterates array of CultureInfo and print the culture name
// (language code-country code) and culture name in English.
//
foreach (CultureInfo culture in cultures)

Console.WriteLine(String.Format("0, -151",
culture.Name, culture.EnglishName));

Console.ReadLine();


// Implement IDisposable.
public void Dispose()

if (cultures != null)

cultures = null;
GC.SuppressFinalize(this);





 



List all supported cultures name -C#

Friday, August 19, 2016

Check Leap Year C#-Example

Program to Check Leap Year


This C# Program Checks Whether the Entered Year is a Leap Year or Not.

When A year is divided by 4, If remainder is 0 then the year is called a leap year.

Below is a C# Program to Check Whether the Entered Year is a Leap Year or Not.




using System;

namespace Zappmania.Example.IsLeapYear


public class LeapYearDemo

public static void Main(string[] args)

var year = 0;
var obj = new LeapYearDemo();
obj.ReadInputData(out year);
if (obj.IsLeapYear(year))

Console.WriteLine("0 is a Leap Year", year);

else

Console.WriteLine("0 is not a Leap Year", year);

Console.ReadLine();


public void ReadInputData(out int year)

Console.WriteLine("Enter the Year in Four Digits : ");
year = Convert.ToInt32(Console.ReadLine());

public bool IsLeapYear(int year)

if ((year % 4 == 0 && year % 100 != 0)




Check Leap Year C#-Example

Thursday, August 18, 2016

Multilevel Inheritance in C#-Example

This C# Program Demonstrates Multilevel Inheritance. Here when a derived class is created from another derived class, then that inheritance is called as multi level inheritance.

Here is source code of the C# Program to Demonstrate Multilevel Inheritance. The C# program is successfully compiled and executed with Microsoft Visual Studio.


The program output is also shown below.




using System;
namespace demo

//Multilevel Inheritance in C#-Example

class Child2 : Child1

public Child2()

Console.WriteLine("Print from Child2 !!");

public void MethodFrmChild2()

Console.WriteLine("Print from MethodFrmChild2 !! ");

static void Main(string[] args)

var obj = new Child2();
obj.MethodFrmParent();
obj.MethodFrmChild1();
obj.MethodFrmChild2();
Console.Read();


class ParentClass

public ParentClass()

Console.WriteLine("Print from Parent!!");


public void MethodFrmParent()

Console.WriteLine("Print from MethodFrmParent!!");


class Child1 : ParentClass

public Child1()

Console.WriteLine("Print from Child1 !!");

public void MethodFrmChild1()

Console.WriteLine("Print from MethodFrmChild1!!");





Output


Print from Parent!!
Print from Child1 !!
Print from Child2 !!
Print from MethodFrmParent!!
Print from MethodFrmChild1!!
Print from MethodFrmChild2 !!


Multilevel Inheritance in C#-Example

DateTime Formatting in C#

The DateTime class is most useful for our time based programs. But most of the time we don’t know how to use the it with appropriate formats.


First of all there are different custom format specifiers for formatting datetime.

list goes like below :


  • y -> (year),

  • M -> (month),

  • d -> (day),

  • h -> (hour 12),

  • H -> (hour 24),

  • m -> (minute),

  • s -> (second),

  • f -> (second fraction),

  • F -> (second fraction, trailing zeroes are trimmed),

  • t -> (P.M or A.M) and last not the list

  • z -> (time zone).

Standard DateTime Formatting


Let’s see some Standard DateTime Formatting. there are defined standard patterns for the current culture. For example property ShortTimePattern is string that contains value h:mm tt for en-US culture and value HH:mm for de-DE culture.


Following table shows patterns defined in DateTimeForma­tInfo and their values for en-US culture. First column contains format specifiers for the String.Format method.


 




























































S.no.SpecifierDateTimeFormatInfo propertyPattern value (for en-US culture)
1tShortTimePatternh:mm tt
2dShortDatePatternM/d/yyyy
3TLongTimePatternh:mm:ss tt
4DLongDatePatterndddd, MMMM dd, yyyy
5f(combination of D and t)dddd, MMMM dd, yyyy h:mm tt
6FFullDateTimePatterndddd, MMMM dd, yyyy h:mm:ss tt
7g(combination of d and t)M/d/yyyy h:mm tt
8G(combination of d and T)M/d/yyyy h:mm:ss tt
9m, MMonthDayPatternMMMM dd
10y, YYearMonthPatternMMMM, yyyy
11r, RRFC1123Patternddd, dd MMM yyyy HH’:’mm’:’ss ‘GMT’ (*)
12sSortableDateTi­mePatternyyyy’-‘MM’-‘dd’T’HH’:’mm’:’ss (*)
13uUniversalSorta­bleDateTimePat­ternyyyy’-‘MM’-‘dd HH’:’mm’:’ss’Z’ (*)
(*) = culture independent

As now we are familiar with format specifiers lets we will see two different ways to format datetime


  1. Format by using DateTime.ToString()

  2. Format by using String.Format()

Format DateTime by using DateTime.ToString()




DateTime dt = DateTime.Now;
String strDate="";
strDate = dt.ToString("MM/dd/yyyy"); // 08/18/2016
strDate = dt.ToString("dddd, dd MMMM yyyy"); //Thursday, 18 August 2016
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm"); // Thursday, 18 August 2016 14:58
strDate = dt.ToString("dddd, dd MMMM yyyy hh:mm tt"); // Thursday, 18 August 2016 03:00 PM
strDate = dt.ToString("dddd, dd MMMM yyyy H:mm"); // Thursday, 18 August 2016 5:01
strDate = dt.ToString("dddd, dd MMMM yyyy h:mm tt"); // Thursday, 18 August 2016 3:03 PM
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm:ss"); // Thursday, 18 August 2016 15:04:10
strDate = dt.ToString("MM/dd/yyyy HH:mm"); // 08/18/2016 15:05
strDate = dt.ToString("MM/dd/yyyy hh:mm tt"); // 08/18/2016 03:06 PM
strDate = dt.ToString("MM/dd/yyyy H:mm"); // 08/18/2016 15:08
strDate = dt.ToString("MM/dd/yyyy h:mm tt"); // 08/18/2016 3:08 PM
strDate = dt.ToString("MM/dd/yyyy HH:mm:ss"); // 08/18/2016 15:09:29
strDate = dt.ToString("MMMM dd"); // August 18
strDate = dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK"); // 2016-08-18T15:11:19.1250000+05:30
strDate = dt.ToString("ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"); // Sat, 18 Jul 2016 15:12:16 GMT
strDate = dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); // 2016-08-18T15:12:57
strDate = dt.ToString("HH:mm"); // 15:14
strDate = dt.ToString("hh:mm tt"); // 03:14 PM
strDate = dt.ToString("H:mm"); // 5:15
strDate = dt.ToString("h:mm tt"); // 3:16 PM
strDate = dt.ToString("HH:mm:ss"); // 15:16:29
strDate = dt.ToString("yyyy'-'MM'-'dd HH':'mm':'ss'Z'"); // 2016-08-18 15:17:20Z
strDate = dt.ToString("dddd, dd MMMM yyyy HH:mm:ss"); // Thursday, 18 August 2016 15:17:58
strDate = dt.ToString("yyyy MMMM"); // 2016 August


Format DateTime using String.Format()


// create date time 2008-03-09 16:05:07.123
var dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);

String.Format("0:y yy yyy yyyy", dt); // "8 08 008 2008" year
String.Format("0:M MM MMM MMMM", dt); // "3 03 Mar March" month
String.Format("0:d dd ddd dddd", dt); // "9 09 Sun Sunday" day
String.Format("0:h hh H HH", dt); // "4 04 16 16" hour 12/24
String.Format("0:m mm", dt); // "5 05" minute
String.Format("0:s ss", dt); // "7 07" second
String.Format("0:f ff fff ffff", dt); // "1 12 123 1230" sec.fraction
String.Format("0:F FF FFF FFFF", dt); // "1 12 123 123" without zeroes
String.Format("0:t tt", dt); // "P PM" A.M. or P.M.
String.Format("0:z zz zzz", dt); // "-6 -06 -06:00" time zone

// date separator in german culture is "." (so "/" changes to ".")
String.Format("0:d/M/yyyy HH:mm:ss", dt); // "9/3/2008 16:05:07" - english (en-US)
String.Format("0:d/M/yyyy HH:mm:ss", dt); // "9.3.2008 16:05:07" - german (de-DE)

// month/day numbers without/with leading zeroes
String.Format("0:M/d/yyyy", dt); // "3/9/2008"
String.Format("0:MM/dd/yyyy", dt); // "03/09/2008"

// day/month names
String.Format("0:ddd, MMM d, yyyy", dt); // "Sun, Mar 9, 2008"
String.Format("0:dddd, MMMM d, yyyy", dt); // "Sunday, March 9, 2008"

// two/four digit year
String.Format("0:MM/dd/yy", dt); // "03/09/08"
String.Format("0:MM/dd/yyyy", dt); // "03/09/2008"

String.Format("0:t", dt); // "4:05 PM" ShortTime
String.Format("0:d", dt); // "3/9/2008" ShortDate
String.Format("0:T", dt); // "4:05:07 PM" LongTime
String.Format("0:D", dt); // "Sunday, March 09, 2008" LongDate
String.Format("0:f", dt); // "Sunday, March 09, 2008 4:05 PM" LongDate+ShortTime
String.Format("0:F", dt); // "Sunday, March 09, 2008 4:05:07 PM" FullDateTime
String.Format("0:g", dt); // "3/9/2008 4:05 PM" ShortDate+ShortTime
String.Format("0:G", dt); // "3/9/2008 4:05:07 PM" ShortDate+LongTime
String.Format("0:m", dt); // "March 09" MonthDay
String.Format("0:y", dt); // "March, 2008" YearMonth
String.Format("0:r", dt); // "Sun, 09 Mar 2008 16:05:07 GMT" RFC1123
String.Format("0:s", dt); // "2008-03-09T16:05:07" SortableDateTime
String.Format("0:u", dt); // "2008-03-09 16:05:07Z" UniversalSortableDateTime

Let’s see some examples of standard format specifiers in String.Format method and the resulting output.



String.Format("0:t", dt); // "4:05 PM" ShortTime
String.Format("0:d", dt); // "3/9/2008" ShortDate
String.Format("0:T", dt); // "4:05:07 PM" LongTime
String.Format("0:D", dt); // "Sunday, March 09, 2008" LongDate
String.Format("0:f", dt); // "Sunday, March 09, 2008 4:05 PM" LongDate+ShortTime
String.Format("0:F", dt); // "Sunday, March 09, 2008 4:05:07 PM" FullDateTime
String.Format("0:g", dt); // "3/9/2008 4:05 PM" ShortDate+ShortTime
String.Format("0:G", dt); // "3/9/2008 4:05:07 PM" ShortDate+LongTime
String.Format("0:m", dt); // "March 09" MonthDay
String.Format("0:y", dt); // "March, 2008" YearMonth
String.Format("0:r", dt); // "Sun, 09 Mar 2008 16:05:07 GMT" RFC1123
String.Format("0:s", dt); // "2008-03-09T16:05:07" SortableDateTime
String.Format("0:u", dt); // "2008-03-09 16:05:07Z" UniversalSortableDateTime


DateTime Formatting in C#