Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में Aggregate() मेथड का उपयोग


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() के तीन मुख्य ओवरलोड्स हैं:

  1. Aggregate(Func<TSource, TSource, TSource>) - सरल संचय
  2. Aggregate(TSeed, Func<TSeed, TSource, TSeed>) - सीड मान के साथ
  3. 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 फेंका जाता है
  • जटिल संक्रियाओं के लिए सीड-आधारित ओवरलोड अधिक सुरक्षित है
  1. - C# में GroupBy() विधि

    GroupBy() एक एक्सटेंशन विधि है जो दिए गए संग्रह से कुछ कुंजी मान के आधार पर तत्वों का एक समूह लौटाती है। निम्न हमारी सरणी है: int[] arr = { 2, 30, 45, 60, 70 }; अब, हम 50 से छोटे तत्वों को समूहित करने के लिए GroupBy() का उपयोग करेंगे: chkSmaller(b)); उपरोक्त chkSmaller() 50 से छोटे तत्वों को ढूंढता

  1. - C# में CompareTo() विधि

    दो मानों की तुलना करने के लिए, CompareTo() विधि का उपयोग करें। निम्न वापसी मान हैं: 0 = दोनों संख्याएं बराबर हैं 1 = दूसरी संख्या छोटी है -1 = पहली संख्या छोटी है C# में CompareTo() विधि को लागू करने का कोड यहां है: उदाहरण using System; public class Demo { public static void Main() {

  1. - रूबी के Array#zip में महारत: कुशल सरणी जोड़ी और तुलना

    मान लीजिए कि आप दो सरणियों की तुलना करना चाहते हैं, तत्व दर तत्व ताकि आप अंतर ढूंढ सकें। या शायद आप हर इंडेक्स पर सबसे बड़ी संख्या ढूंढना चाहते हैं, या आप केवल कुंजियों की सूची और मानों की सूची को मर्ज करके एक हैश बनाना चाहते हैं… …इसे करने का कठिन तरीका ऐसा कुछ दिखेगा। उदाहरण: a = [1,2,3,4,5] b =