0

私は C# と .NET で書くのが初めてで、プログラムをより効率的に実行したいので、誰かがここで私を助けてくれるかどうか疑問に思っています。簡単に言えば、私のプログラムは一連の Excel ファイルを調べて、データをそれらにコピーします。これはすべて正常に機能していますが、さらに効率的にしたいと考えています。今のところ、次のように Clients ディレクトリ内のすべての Excel ファイル パスのリストを作成します。

listClientExcelPaths = new List<String>(Directory.GetFiles(PATH_Root + PATH_Clients, "*.xlsx", SearchOption.AllDirectories));

次に、リストから一時的または明らかに正しくない Excel ファイルを削除し、listClientExcelFiles各ファイルを循環して処理します。Excel ファイルを開くと、Excel ファイルの内容が目的のものであることを確認し、そうでない場合は閉じます。

これで問題ありませんが、処理をもう少し効率的にするために、すべてのクライアントの下の Admin フォルダーにある Excel ファイルのみが必要です。したがって、すべてのクライアント フォルダのディレクトリ構造は次のようになりますClientName\Admin

私の質問は次のとおりです。これを行う最も効率的な方法は何ですか? リスト内の各パスを調べて、管理者を含まないパスを削除することを考えていますか? 誰かが私にこれの例を教えてもらえますか?

どんな助けでも大歓迎です!

ありがとう、ジャスティン

4

1 に答える 1

1

あなたの考えは結構です。LINQ の使用に問題がない場合、タスクは次のようなワンライナーです。

var paths = new List<string>
{
    @"a\b\admin\c",
    @"x\y\z\",
    @"ddd\ggg\hhh\admin",
    @"zzz\yyy\rrr"
};

var filteredPaths = paths.Where (p => p.ToLower().Contains("admin")).ToList();

出力は次のとおりです。

a\b\admin\c 
ddd\ggg\hhh\admin 
于 2013-10-31T22:18:35.757 に答える