C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回は配列に保存した変数を、ForEach構文で逆向きに取得していく場合の手順です。
MenuFlyout.Iconでメニューに画像を追加
[MenuFlyoutItem]でコンテキストメニューを表示している場合は、新しく[MenuFlyoutItem.Icon]タグを追加してアイコンとして表示する画像を指定します。
例えば、指定したフォルダー内の一覧を取得した際に保存した配列を順番に処理する場合にはForEach構文を使います。
ForEach構文は配列の先頭から処理が実行されますが、場合によっては末尾から処理したほうが効率的なケースもあります。
private void GetAllFolder(string path)
{
string sResult = "";
DirectoryInfo diFolder = new DirectoryInfo(Path.GetDirectoryName(path));
DirectoryInfo diParent = diFolder.Parent;
string[] sFolders = Directory.GetDirectories(diParent.FullName + "\\");
foreach (string s in sFolders)
{
//...処理...
}
}
逆向きにループさせる場合は[Enumerable.Reverse(<配列>)]を利用して、コードを次のように変更すると、配列の末尾から先頭に向かって処理が実行されます。
private void GetAllFolder(string path)
{
string sResult = "";
DirectoryInfo diFolder = new DirectoryInfo(Path.GetDirectoryName(path));
DirectoryInfo diParent = diFolder.Parent;
string[] sFolders = Directory.GetDirectories(diParent.FullName + "\\");
foreach (string s in Enumerable.Reverse(sFolders))
{
//...処理...
}
}
先頭から、指定された数の連続する要素を返す[Enumerable.Take]や、指定された数の要素を除外する[Enumerable.Skip]など、配列を処理する際に便利なメソッドが用意されているので、大量の配列を効率的に処理する場合に有効です。
まとめ
今回は短い記事ですが、C#の配列をForEach構文で逆向きに処理する場合の手順を紹介しました。
配列を保存した変数に[Enumerable.Reverse]を利用することで処理を末尾から開始することができます。
C#の配列を逆向きに処理したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。