検証する必要があるアイテムのリストがあります。リストには、タイプ A、B、および C の項目をいくつでも含めることができますが、リストを保存する前に、次の規則を確認する必要があります。
- A がある場合、B または C のいずれかが必要です
- BがあればAが必要
私は次のコード(saudoコード)になりました:
bool IsListValid()
{
var a = list.ContainsAny(A);
var b = list.ContainsAny(B);
var c = list.ContainsAny(C);
if (!a && !b)
return true;
if (a && (b || c)
return true;
return false;
}
私はこのコードが好きではありません。
1. Any を 3 回続けて使用すると、リストが 3 回繰り返される可能性
があります。
もちろん、異なる変数名を使用し、テストを適切な名前のメソッドに抽出する方が良いでしょうが、これを完全に解決するより良い方法があると思います. 方法がわからない...
任意のヒント?