Implement Many-To-Many Relationship in C# Class

In previous articles we saw how to implement various relationships among C# classes. You can read them here:

One to one relationship in C# class
Implement one to many relationship in C# class.
Many to One Relationship in C# Class

In this article we will see how to implement a Many-To-Many relationship in a C# class. Let's explain a few scenarios where a Many-To-Many relationship is relevant.

The relationship between a Cricket match and Cricketer is one example of a Many-To-Many relationship. One Cricket match is played by many Cricketers and one Cricketer takes part in many Cricket matches.

Let's implement this example using a C# class.

Relationship between Cricketer and matches

As we have explained many Cricketers play in a single Cricket match and one Cricketer takes part in multiple matches. For the sake of simplicity we have used only a Cricketer class. We can use a Matches class in the same fashion. Have a look at the following code.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Client

{

    class Cricketer

    {

        List<Matches> MLst = new List<Matches>();

        List<Cricketer> CList = new List<Cricketer>();

 

        public string Name { get; set; }

 

        public List<Matches> getSetMatch

        {

            get { return MLst; }

            set { MLst = value; }

        }

 

        public List<Cricketer> getsetCricketer

        {

            get { return CList; }

            set { CList = value; }

        }

 

 

        public void Print()

        {

            Console.WriteLine("-----Cricketer Name---- ");

            foreach (Cricketer c in CList)

            {

                Console.WriteLine(c.Name);

            }

 

            Console.WriteLine("-----Matches Played----");

            foreach (Matches m in MLst)

            {

                Console.WriteLine(m.MatchVs);

            }

        }

    }

    class Matches

    {

        List<Cricketer> Lst = new List<Cricketer>();

        public string MatchVs { get; set; }

 

        public void Print()

        {

            Console.WriteLine("Match Verses");

            foreach (Cricketer c in Lst)

            {

                Console.WriteLine("Cricketer Name:- " + c.Name);

            }

        }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            List<Cricketer> CList = new List<Cricketer>();

            List<Matches> MList = new List<Matches>();

 

            Cricketer c = new Cricketer();

            c.Name = "Sourav Ganguly";

            CList.Add(c);

            c = new Cricketer();

            c.Name = "Sachin Tendulkar";

            CList.Add(c);

 

 

            //Add matches

            Matches m = new Matches();

            m.MatchVs = "India-Sri Lanka";

            MList.Add(m);

 

            //Add another match

            m = new Matches();

            m.MatchVs = "India - Bangladesh";

            MList.Add(m);

 

            c.getsetCricketer = CList;

            c.getSetMatch = MList;

            c.Print();

 

            Console.ReadLine();

        }

    }

}

Here is sample output:

Many to Many Relationship

Conclusion

In this article we have learned how to implement a Many-To-Many relationship in a C# Class. Hope you have understood the concept. Though it is a very rare scenario where a Many-To-Many relationship is relevant. Happy learning.

Up Next
    Ebook Download
    View all
    Learn
    View all