C# Program to Split a String Collections into Groups


Welcome to this comprehensive tutorial on creating a C# program to split a collection of strings into groups using Language Integrated Query (LINQ). Whether you're a novice or an intermediate programmer, this guide will provide you with the insights necessary to understand the power of LINQ in C# and its applications in data manipulation.

Understanding the Concept of Grouping in LINQ

Grouping is a powerful concept in data manipulation. It involves organizing data into categories based on specified criteria. Grouping is essential when dealing with large datasets as it helps in simplifying data analysis and extraction of meaningful insights.

In LINQ, the GroupBy method is used to group elements in a collection based on a key selector function. The result is a collection of groups where each group is a collection of elements that share a common key.

C# Program: Splitting String Collections into Groups

Let's delve into the code. We will use a simple collection of strings and split them into groups based on the first letter of each string.

Example

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

public class Program {
   public static void Main() {
      // Collection of strings
      List<string> words = new List<string>() {
         "Apple",
         "Banana",
         "Cherry",
         "Date",
         "Elderberry",
         "Fig",
         "Grape",
         "Honeydew",
         "Iced",
         "Jackfruit",
         "Kiwi",
         "Lemon",
         "Mango",
         "Nectarine",
         "Orange",
         "Pineapple",
         "Quince",
         "Raspberry",
         "Strawberry",
         "Tomato",
         "Ugli",
         "Vanilla",
         "Watermelon",
         "Xigua",
         "Yam",
         "Zucchini"
      };
   
      // Use LINQ to group words by their first letter
      var groupedWords = words.GroupBy(word => word[0]);

      // Print out grouped words
      foreach (var group in groupedWords) {
         Console.WriteLine($"Group: {group.Key}");
         foreach (var word in group) {
            Console.WriteLine($"  {word}");
         }
      }
   }
}

Output

In this code, we first declare a list of string items. We then use a LINQ query with the GroupBy function to categorize these strings based on the first letter of each string. Finally, we print out each group and the words within it.

Group: A
Apple
Group: B
  Banana
Group: C
  Cherry
Group: D
  Date
Group: E
  Elderberry
Group: F
  Fig
Group: G
  Grape
Group: H
  Honeydew
Group: I
  Iced
Group: J
  Jackfruit
Group: K
  Kiwi
Group: L
Lemon
Group: M
  Mango
Group: N
  Nectarine
Group: O
  Orange
Group: P
  Pineapple
Group: Q
  Quince
Group: R
  Raspberry
Group: S
  Strawberry
Group: T
  Tomato
Group: U
  Ugli
Group: V
  Vanilla
Group: W
  Watermelon
Group: X
  Xigua
Group: Y
  Yam
Group: Z
  Zucchini

Exploring More Grouping Features in LINQ

LINQ provides more advanced features for grouping that can help you categorize data in more complex ways. For instance, you can use multiple keys for grouping, apply conditions to the grouping, or even perform computations on each group.

Consider the following example where we group words based on their length −

var groupedWords = words.GroupBy(word => word.Length);

Here, instead of grouping the words by the first letter, we're grouping them by their length. This demonstrates the flexibility of LINQ when it comes to data manipulation.

Power of LINQ in Data Manipulation

The power of LINQ shines in scenarios where you have to perform complex data manipulations. With traditional methods, you may find yourself writing extensive and complicated code. However, with LINQ, you can achieve the same results with fewer lines of code that are also more readable and maintainable.

One of the key features of LINQ is its ability to work with different types of data sources. Whether you're working with in-memory collections, XML files, or databases, you can use the same LINQ syntax for your data manipulation tasks. This makes LINQ a versatile tool in any C# programmer's toolbox.

Conclusion

In this tutorial, we explored how to create a C# program that splits a collection of strings into groups using LINQ. We learned about the GroupBy method and how it can be used to categorize data based on specific criteria. We also touched on some of the advanced grouping features provided by LINQ.

Updated on: 24-Jul-2023

172 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements