2016-04-12 6 views
0

に基づいたIF C#のビルド私は、可能な少なくとも紛らわしい方法でこの質問をするために全力を尽くすつもりです:文が複数のチェックボックス

私はDirectoryServices.AccountManagementの名前空間を使用してActive Directoryに対する検索を行っております。私は私がにデータを置くのですDataGrid内に異なる結果をしたい時に手動で検索条件を構築することができる午前例えば:。

if (up != null && up.SmartcardLogonRequired == true 
       && up.Custom_Attribute_1.Contains("SomeText")) 
{ 
     // Add items to DataGrid 
} 

し、すべてがうまく動作します。私がしたいのは、自分のプログラムにチェックボックスを追加してIF文を構築できることです。スマートカード必須のチェックボックスがチェックされ、その後、それは次のようになりますない限り

if (up != null) 

if (up != null && up.SmartcardLogonRequired == true) 

しかし、それがチェックされていない場合、および意味、if文は次のようになります。

if (up != null && up.Custom_Attribute_11.Contains("SomeText") 

だから基本的に私は私のプログラムに入れるチェックボックスに応じて構築されているIF条件文を探しています:CustomAttribute1のボックスには、それは次のようになり、です。これは可能ですか?

+1

ような何かがサウンド。 – Tony

+0

スイッチケースを使用する必要がありますか? –

答えて

4

Func<bool>のコレクションを作成できます。あなたはすべてのあなたの「チェックボックス」のコレクションを取得し、リストに入れて、あなたはそれを停止したいまで、各チェックボックスに対するロジックをチェックリストを反復処理することができように、この

var conditions = new List<Func<bool>>(); 

// Append conditions here as much as you want 
conditions.Add(() => up != null); 

if (SmartcardLogonRequired) 
    conditions.Add(() => up.SmartcardLogonRequired == true); 

if (someCondition) 
    conditions.Add(() => up.Custom_Attribute_11.Contains("SomeText")); 

// Evaulate 
if (conditions.All(x => x())) { 
    // Add items to DataGrid 
} 

Demo

+0

OK - チェックボックスの結果に基づいて条件を追加するにはどうすればよいですか? – user3050992

+0

@ user3050992 'if'ブロック内で個々のAdd演算をラップすることができます。編集 –

+0

を参照してください。Ok - 私はそれを試して、System.Object.DisposedExceptionを取得しています:配置されたオブジェクトにアクセスすることはできません。 – user3050992

関連する問題