C# में Aggregate() मेथड का उपयोग किसी अनुक्रम पर संचयी संक्रिया (cumulative operation) करने के लिए किया जाता है। यह गणितीय संक्रियाओं जैसे योग (Sum), न्यूनतम (Min), अधिकतम (Max), औसत (Average), गुणनफल (Product) आदि के लिए उपयोगी है।
उदाहरण: सरणी के तत्वों का गुणनफल
मान लीजिए हमारे पास निम्न सरणी है:
int[] arr = { 10, 15, 20 };
Aggregate() का उपयोग करके सभी तत्वों को गुणा करें:
int product = arr.Aggregate((x, y) => x * y);
पूर्ण कोड उदाहरण
using System;
using System.Linq;
public class Demo
{
public static void Main()
{
int[] arr = { 10, 15, 20 };
// सभी तत्वों का गुणनफल
int result = arr.Aggregate((x, y) => x * y);
Console.WriteLine("गुणनफल: " + result); // आउटपुट: 3000
// अन्य उदाहरण: स्ट्रिंग जोड़ना
string[] words = { "Hello", " ", "World", "!" };
string sentence = words.Aggregate((x, y) => x + y);
Console.WriteLine("वाक्य: " + sentence); // आउटपुट: Hello World!
}
}
आउटपुट
गुणनफल: 3000 वाक्य: Hello World!
Aggregate() के ओवरलोड्स
Aggregate() के तीन मुख्य ओवरलोड्स हैं:
Aggregate(Func<TSource, TSource, TSource>)- सरल संचयAggregate(TSeed, Func<TSeed, TSource, TSeed>)- सीड मान के साथAggregate(TSeed, Func<TSeed, TSource, TSeed>, Func<TSeed, TResult>)- सीड और परिणाम सेलेक्टर के साथ
सीड मान के साथ उदाहरण
// 100 से शुरू करके गुणनफल int resultWithSeed = arr.Aggregate(100, (x, y) => x * y); Console.WriteLine(resultWithSeed); // आउटपुट: 300000 (100 * 10 * 15 * 20)
महत्वपूर्ण बिंदु
- पहला पैरामीटर संचयक (accumulator) होता है, दूसरा वर्तमान तत्व
- खाली अनुक्रम पर बिना सीड वाले ओवरलोड को कॉल करने पर
InvalidOperationExceptionफेंका जाता है - जटिल संक्रियाओं के लिए सीड-आधारित ओवरलोड अधिक सुरक्षित है