必要な機能の 1 つとして検索を実行する必要があるプログラムを作成しています。ユーザーは、フィールドなしからすべて (合計 7) まで、任意の数のフィールドを使用できる必要があります。これまでのところ、次のように if ステートメント内でデータ入力の各ケースをグループ化することに成功しました。
List<TypeClass> myList = new List<TypeClass>
foreach TypeClass currentItem in myList
{
if (data1 == currentItem.GetData1() || data1 == "Do Not Search" && (data2 == currentItem.GetData2() || data2 == "Do Not Search") && (data3...)
{
//Stuff
}
}
お気付きかもしれませんが、各データ フィールドを角かっこで囲んでグループ化したので、入力された各データが必要な条件または「空のフィールド」のいずれかである場合にのみ、ステートメントが満たされます。ただし、ステートメントの最初の部分を他のデータのようにグループ化することはできません2,3,4...代わりに、条件を満たさない検索フィールドが他にある場合でも、ステートメントは常に true と評価されます。ステートメント。追加の括弧を使用すると、プログラムは if ステートメントを完全に無視し、ケースがまったく一致しないかのように扱います。
したがって、次のように書くと:
if ((data1 == currentIten.GetData1 || data1 == "Do Not Search") && (data2...)
何もチェックされず、ステートメントは無視されます。これは正常ですか?オプションの検索フィールドの選択を処理するためのより良い/より効率的な方法はありますか?
編集: タイプミスで申し訳ありません。各 GetDataX はアクセサーであり、括弧 () を書き忘れました。