C# 配列やリストの値をソートする
C#で、配列やリストの値をソートするサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Microsoft Visual Studio Community 2019 Version 16.7.1
配列やリストの値を昇順ソート
配列やリストの値を昇順ソートするには、Linqの「OrderBy」を使用します。
以下は、配列やリストの値を昇順にソートだけのコードとなります。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 1, 0, 3, 2, 4, 3 };
string[] arr2 = new string[] {"e", "b", "c", "a", "d" };
List<int> list = new List<int> { 0, 1, 2, 1, 2 };
try
{
IEnumerable<int> reault1 = arr.OrderBy(v => v);
IEnumerable<string> reault2 = arr2.OrderBy(v => v);
IEnumerable<int> reault3 = list.AsEnumerable().OrderBy(v => v);
Console.WriteLine($"実行結果は{String.Join(", ", reault1.Select(v => v))}です");
// 0, 1, 2, 3, 3, 4
Console.WriteLine($"実行結果は{String.Join(", ", reault2.Select(v => v))}です");
// a, b, c, d, e
Console.WriteLine($"実行結果は{String.Join(", ", reault3.Select(v => v))}です");
// 0, 1, 1, 2, 2
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
逆に降順ソートするには、Linqの「OrderByDescending」を使用します。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 1, 0, 3, 2, 4, 3 };
string[] arr2 = new string[] {"e", "b", "c", "a", "d" };
List<int> list = new List<int> { 0, 1, 2, 1, 2 };
try
{
IEnumerable<int> reault1 = arr.OrderByDescending(v => v);
IEnumerable<string> reault2 = arr2.OrderByDescending(v => v);
IEnumerable<int> reault3 = list.AsEnumerable().OrderByDescending(v => v);
Console.WriteLine($"実行結果は{String.Join(", ", reault1.Select(v => v))}です");
// 4, 3, 3, 2, 1, 0
Console.WriteLine($"実行結果は{String.Join(", ", reault2.Select(v => v))}です");
// e, d, c, b, a
Console.WriteLine($"実行結果は{String.Join(", ", reault3.Select(v => v))}です");
// 2, 2, 1, 1, 0
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
-
前の記事
Linux コマンドの実行結果を英語に変更する 2021.10.03
-
次の記事
javascript indexOfを使って文字列が含まれているかを判定する 2021.10.03
コメントを書く