2020年09月23日
川俣晶の縁側ソフトウェアC# コーディング How Tototal 1033 count

【入門級】文字列配列からファイルのパスを生成

Written By: 川俣 晶連絡先

配列からパスが欲しい §

 string[] ar = { "a", "b", "c" };という配列があるとします。

 ここから"a\b\c"というファイルのパスを作りたいとします。

 正攻法で行くとPath.Combine(ar[0], ar[1], ar[2]);です。Path.Combineメソッドは任意の個数の文字列を連結してパスを生成できます。

 しかし、ここには1つソースを短縮できるポイントがあります。

  • 任意の個数の引数を取るメソッドは、任意の個数の代わりに配列を渡せる

 ですから、Path.Combine(ar);と書いても結果は同じです。

罠の数々 §

  • 実行されるコードが全く同じではないので、同じ文字列が返ってくるとしても、実行速度が同じというわけではない。速度がクリティカルなときはベンチマークを取ってどちらが速いか確認しておくと良い

参考リンク §

Path.Combine メソッド

 上記のリンクからPath.Combine メソッドにはどのようなバリエーションがあり、それぞれのケースでどのバリエーションが呼ばれているのかを確認しておこう。

リポジトリ §

https://github.com/autumn009/cshowto

path2 §

using System;

using System.IO;

class Program

{

    static void Main()

    {

        string[] ar = { "a", "b", "c" };

        // 正攻法

        var path1 = Path.Combine(ar[0], ar[1], ar[2]);

        Console.WriteLine($"path1={path1}");

        // これでもいける

        var path2 = Path.Combine(ar);

        Console.WriteLine($"path2={path2}");

    }

}

実行結果

path1=a\b\c

path2=a\b\c

Facebook

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?
キーワード【 川俣晶の縁側ソフトウェアC# コーディング How To
【C# コーディング How To】の次のコンテンツ
2020年
09月
24日
【入門級】2次元配列と配列の配列(ジャグ配列)は似ているが違う
3days 0 count
total 1701 count
【C# コーディング How To】の前のコンテンツ
2020年
09月
22日
【入門級】ファイルのフルパスを示す文字列の作り方
3days 0 count
total 1191 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20200923083211
サイトの表紙【C# コーディング How To】の表紙【C# コーディング How To】のコンテンツ全リスト 【C# コーディング How To】の入手全リスト 【C# コーディング How To】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.