Open In App

C# Program to Split a String Collections into Groups

Improve
Improve
Like Article
Like
Save
Share
Report

Given a collection of strings and you are required to split them into groups using C#. The standard query operator contains GroupBy grouping operator using which we can split a collection of strings easily. The working of the GroupBy operator is similar to the SQL GroupBy clause. It is used to return the group of elements that share the common attributes or keys from the given sequence or collection. 

  • This supports query syntax in both the languages, C#, and VB.Net languages.
  • GroupBy can also be used in the C# query. The into keyword allows you to continue with the query and can perform more query operations. Or in other words, it is a temporary identifier that allows you to perform additional query operations.
  • A group with GroupBy can also be used in VB.Net.
  • LINQ query is terminated with the Select or Groupby clause.

Syntax:

Grouping<TKey, TElement> object.

Example:

Input: [“Java”, “Python”, “Swift”, “CSS”, “C#”, “Django”]

Output: Splitting the string collection into groups of two elements

               [“Java”, “Python”]

               [“Swift”, “CSS”]

               [“C#”, “Django”]

Input: [“Delhi”, “Goa”, “Chennai”, “Pune”, “Mumbai”, “Himachal”, “Kolkata”]

Output: Splitting the string collection into groups of three elements

               [“Delhi”, “Goa”, “Chennai”]

               [“Pune”, “Mumbai”, “Himachal”]

               [“Kolkata”]

Example:

C#




// C# program to illustrate how to split a string 
// collections into groups 
using System;
using System.Linq;
using System.Collections.Generic;
  
class GFG{
  
static public void Main()
{
      
    // Initializing a an array of strings 
    string[] subjects = { "Java", "Python", "Swift", "CSS",
                          "C#", "Django", "C++", "Javascript"
                          "HTML", "PHP" };
  
      // Displaying the collection
    Console.Write("The subjects are: \n");
    Console.WriteLine(string.Join(", ", subjects));
  
      
      // Now splitting the string collection into
      // a group of three elements
    var subjectSplit = from i in Enumerable.Range(0, subjects.Length) 
                       group subjects[i] by i / 3;
                         
    Console.WriteLine("\nThe group of subjects are:");
    foreach(var subject in subjectSplit)
        subjectView(string.Join(",  ", subject.ToArray()));
}
  
// Print each group elements
static void subjectView(string subject)
{
    Console.WriteLine(subject);
}
}


Output:

The subjects are: 
Java, Python, Swift, CSS, C#, Django, C++, Javascript, HTML, PHP

The group of subjects are:
Java,  Python,  Swift
CSS,  C#,  Django
C++,  Javascript,  HTML
PHP

Explanation: In the above C# program with the help of subjects[] array(of string type) variable we are reading different subjects. Now we split the given subject[] collection into the group of three subjects using the groupby operator. To iterate over the collection, we are using for each statement but cannot be used to add or remove items from the source collection to avoid undefined results. Now display the given string which is divided into groups.



Last Updated : 26 Jan, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads