C# 配列またはリストの集計を行う
C#で、配列またはリストの集計を行うサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Microsoft Visual Studio Community 2019 Version 16.7.1
集計を行う
集計を行うするには、Linqの「Aggregate」を使用することで可能です。
以下は、配列を集計して、結果を表示するだけのコードとなります。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
int[] arr1 = new int[] { 1, 2, 3, 4, 5};
int?[] arr2 = new int?[] { 1, 2, 3, 4, 5, null };
List<string> list = new List<string> { "java", "react", "vue", "javascript" };
try
{
// 合計値を集計 15
int reault1 = arr1.Aggregate((sum, number) => sum += number);
// nullがあると正しく動作しない
int? reault2 = arr2.Aggregate((sum, number) => sum += number);
// 最大文字数の単語を抽出 javascript
string reault3 = list.Aggregate((str, next) => next.Length > str.Length ? next : str);
Console.WriteLine($"実行結果は{reault1}です"); // 15
Console.WriteLine($"実行結果は{reault2}です"); //
Console.WriteLine($"実行結果は{reault3}です"); // javascript
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
以下のように、初期値を設定することも可能です。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
int[] arr1 = new int[] { 1, 2, 3, 4, 5};
List<string> list = new List<string> { "java", "react", "vue", "javascript" };
try
{
// 初期値と合計値を集計
int reault1 = arr1.Aggregate(15,(sum, number) => sum += number);
// 初期値を含め最大文字数の単語を抽出
string reault2 = list.Aggregate("aspnetcore",(str, next) => next.Length > str.Length ? next : str);
Console.WriteLine($"実行結果は{reault1}です"); // 30
Console.WriteLine($"実行結果は{reault2}です"); // aspnetcore
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
-
前の記事
javascript lodashを使って親クラスを含んでオブジェクトのキーのみを取得する 2021.12.26
-
次の記事
MySQL 整数をカンマ区切りで表示する 2021.12.26
コメントを書く