C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#Aggregate()メソッド


Aggregate()メソッドは、シーケンスにアキュムレータ関数を適用します。

以下は私たちの配列です-

string[] arr = { "DemoOne", "DemoTwo", "DemoThree", "DemoFour"};

次に、Aggregate()メソッドを使用します。比較のために、ssed値を「DemoFive」に設定しました。

string res = arr.AsQueryable().Aggregate("DemoFive", (longest, next) => next.Length > longest.Length ? next : longest,str => str.ToLower());
>

ここで、結果の文字列には、初期シード値(「DemoFive」)よりも多くの文字が含まれている必要があります。

using System;
using System.Linq;
class Demo {
   static void Main() {
      string[] arr = { "DemoOne", "DemoTwo", "DemoThree", "DemoFour"};
      string res = arr.AsQueryable().Aggregate("DemoFive", (longest, next) => next.Length >       longest.Length ? next : longest,str => str.ToLower());
      Console.WriteLine("The string with more number of characters: {0}", res);
   }
}

出力

The string with more number of characters: demothree

  1. C#のCompareTo()メソッド

    2つの値を比較するには、CompareTo()メソッドを使用します。 戻り値は次のとおりです- 0=両方の数値が等しい 1=2番目の数値が小さい -1=最初の数字が小さい これは、C#でCompareTo()メソッドを実装するためのコードです- 例 using System; public class Demo {    public static void Main() {       int val1 = 100;       int val2 = 100;      

  2. Array#zipメソッド

    違いを見つけることができるように、2つの配列を要素ごとに比較したいとします。 または、すべてのインデックスで最大の数値を見つけたい場合や、キーのリストと値のリストをマージしてハッシュを作成したい場合もあります… …これを行うための「難しい方法」は、次のようになります。 例 : a = [1,2,3,4,5] b = [1,2,3,6,8] c = a.map.with_index { |_, idx| [a[idx], b[idx]] } # [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]] それで仕事は終わりますが、きれいではありませんよね?