[C#]文字列の配列(Array)を長さで降順にソートするには?

C#

どうも、ちょげ(@chogetarou)です。

文字列の配列(Array)を長さで降順にソートする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

文字列の配列(Array)を長さで降順にソートする方法は、2つあります。

Array.Sort()

1つは、Array.Sort()を使う方法です。

まず、Array.Sort()を呼び出します。

Array.Sort()の第1引数に配列、第2引数に2つの引数を持つラムダ式を指定します。

そして、ラムダ式で第2引数のLengthにアクセスし、LengthからCompareTo()を呼び出します。

CompareTo()の引数に、ラムダ式の第1引数のLengthを指定します。

Array.Sort(array, (x, y) => y.Length.CompareTo(x.Length));

上記のArray.Sort()は、文字列の配列を長さで降順にソートします。

使用例

using System;

public class Example
{   
	public static void Main()
	{
		string[] myArray = new string[5] { "b", "accaa", "cd", "daca", "lea"};
		
		Array.Sort(myArray, (x, y) => y.Length.CompareTo(x.Length));
		
		foreach (var i in myArray) 
		{
		    Console.WriteLine(i);
		}
 	}
}

System.LinqのOrderByDescending

もう1つは、System.LinqのOrderByDescending()を使う方法です。

まず、System.Linqを導入します。

using System.Linq;

次に、文字列の配列からOrderByDescending()を呼び出します。

OrderByDescending()の引数に、引数のLengthプロパティを返すラムダ式を指定します。

そして、OrderByDescending()からToArray()を呼び出します。

result = array.OrderByDescending(x => x.Length).ToArray();

上記の「array.OrderByDescending(x => x.Length).ToArray()」は、OrderByDescending()を呼び出した文字列の配列を、長さで降順にソートした新しい配列を生成します。

使用例

using System;
using System.Linq;
public class Example
{   
	public static void Main()
	{
		string[] myArray = new string[5] { "b", "accaa", "cd", "daca", "lea"};
		
		 myArray = myArray.OrderByDescending(x => x.Length).ToArray();
		
		foreach (var i in myArray) 
		{
		    Console.WriteLine(i);
		}
 	}
}

まとめ

文字列の配列(Array)を長さで降順にソートする方法は、次の2つです。

  • Arary.Sort()を使う方法
  • System.LinqのOrderByDescending()を使う方法

コメント

タイトルとURLをコピーしました