LINQ uses extension methods to add new features to collections without changing their original code. This makes it easy and clean to write queries on data.
Why LINQ depends on extension methods in C Sharp (C#)
public static ReturnType MethodName(this Type parameter, other parameters) { // method body }
The this keyword before the first parameter tells the compiler this is an extension method.
Extension methods must be inside a static class and be static themselves.
WordCount method to all strings.public static int WordCount(this string str) { return str.Split(' ').Length; }
Where is an extension method that filters the list to only even numbers.var numbers = new List<int> {1, 2, 3, 4}; var evenNumbers = numbers.Where(n => n % 2 == 0);
This program shows how an extension method WordCount adds a new feature to strings. It also uses LINQ's Where extension method to filter even numbers from a list.
using System; using System.Collections.Generic; using System.Linq; static class Extensions { public static int WordCount(this string str) { return str.Split(' ', StringSplitOptions.RemoveEmptyEntries).Length; } } class Program { static void Main() { string sentence = "Hello LINQ with extension methods"; Console.WriteLine($"Word count: {sentence.WordCount()}"); List<int> numbers = new() {1, 2, 3, 4, 5, 6}; var evenNumbers = numbers.Where(n => n % 2 == 0); Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers)); } }
Extension methods let LINQ add query features to many types like arrays, lists, and more.
Without extension methods, LINQ would need special syntax or new types to work.
Extension methods keep your code clean and easy to read.
LINQ uses extension methods to add query features to existing types without changing them.
Extension methods make code more readable and allow chaining of operations.
This approach keeps your code organized and flexible.