C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

複数条件の判定の綺麗な・簡素な書き方

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■100381 / inTopicNo.1)  複数条件の判定の綺麗な・簡素な書き方
  
□投稿者/ おさのり (1回)-(2022/07/22(Fri) 16:31:41)

分類:[C#] 

最近C#を学び始めていて、いろいろとロジックの綺麗な書き方を模索しながら、やっていってるのですが、
「5つのファイルのいずれかがあれば」という条件でロジックを書きたいのですが、どういった書き方がありますでしょうか。
そのまま書くと、以下のように非常に長く見た目も良くない為、改善したいです。
if (File.Exists(filePath1)) || (File.Exists(filePath2)) || (File.Exists(filePath3)) || (File.Exists(filePath4)) || (File.Exists(filePath5))
{
i += 1
}

ご教授いただければ幸いです。
よろしくお願いします。
引用返信 編集キー/
■100382 / inTopicNo.2)  Re[1]: 複数条件の判定の綺麗な・簡素な書き方
□投稿者/ 伝説のカレー (32回)-(2022/07/22(Fri) 16:45:48)
No100381 (おさのり さん) に返信

私ならListにつめてAnyでやっちゃいます

var files = new List<string>()
{
  "filePath1",
  "filePath2",
  "filePath3",
  "filePath4",
  "filePath5"
};

if (files.Any(x => File.Exists(x)))
{
  i += 1;
}

引用返信 編集キー/
■100383 / inTopicNo.3)  Re[1]: 複数条件の判定の綺麗な・簡素な書き方
□投稿者/ WebSurfer (2542回)-(2022/07/22(Fri) 17:14:19)
No100381 (おさのり さん) に返信

> そのまま書くと、以下のように非常に長く見た目も良くない為、改善したいです。
> if (File.Exists(filePath1)) || (File.Exists(filePath2)) || (File.Exists(filePath3)) || (File.Exists(filePath4)) || (File.Exists(filePath5))
> {
>     i += 1
> }

そのコードは間違っているのですがそこは本題ではないので置いといて・・・

見やすくする、一目でわかるようにする、後から保守する人のことを考える、組織の
コーディングルールがあればそれに従うというのがまず優先されるべきではないので
しょうか?

好みの問題かもしれませんが、自分的には以下のようなコードが、短くするなどの
ためにこだわっていじくって一目では分からないようなコードにするよりは、良さ
そうだと思うのですが・・・

if (File.Exists(filePath1) || 
    File.Exists(filePath2) || 
    File.Exists(filePath3) || 
    File.Exists(filePath4) || 
    File.Exists(filePath5))
{
    i += 1;
}

引用返信 編集キー/
■100384 / inTopicNo.4)  Re[2]: 複数条件の判定の綺麗な・簡素な書き方
□投稿者/ おさのり (3回)-(2022/07/22(Fri) 17:29:33)
No100383 (WebSurfer さん) に返信

> 好みの問題かもしれませんが、自分的には以下のようなコードが、短くするなどの
> ためにこだわっていじくって一目では分からないようなコードにするよりは、良さ
> そうだと思うのですが・・・
この言葉にハッとさせられました
自分だけが触るコードであれば、自分だけわかればいいかもしれませんが、
複数の人が触ることを考えたら、分かりやすい書き方の方が後の為になりますね
ありがとうございます。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ