第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

字符串中的 C# 多個(gè) switch case 組合

字符串中的 C# 多個(gè) switch case 組合

C#
倚天杖 2022-10-23 13:52:44
我最近在將經(jīng)典 ASP 應(yīng)用程序轉(zhuǎn)換為 C# .NET 時(shí)遇到了一個(gè)相當(dāng)有趣的問題。在這個(gè) MVC 應(yīng)用程序中,前端復(fù)選框(如下)作為字符串讀入,可以有多種組合。AC# case 語句確定正確的組合,并將 case 語句中的 SQL 語句連接到數(shù)據(jù)層文件中的 SELECT。<input value="A" type="checkbox" class="material-checkbox" id="" name="checkbox" checked /><input value="B" type="checkbox" class="material-checkbox" id="" name="checkbox" /><input value="C" type="checkbox" class="material-checkbox" id="" name="checkbox" /><input value="D" type="checkbox" class="material-checkbox" id="" name="checkbox" />
查看完整描述

4 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

嘗試這個(gè):


有多種方法可以做到這一點(diǎn):ABCD 的組合可以創(chuàng)建總共 15 種組合。我在開關(guān)盒中創(chuàng)建了所有 15 種組合:


string checkboxvalue = "";

if(chkA.Checked()) checkboxvalue +="A";

if(chkB.Checked()) checkboxvalue +="B";

if(chkC.Checked()) checkboxvalue +="C";

if(chkD.Checked()) checkboxvalue +="D";




switch(checkboxvalue)

    {

        case "ABCD":

        strSql += "AND .....;"

        break;


        case "ABC":

        strSql += "AND .....;"

        break;


        case "ABD":

        strSql += "AND .....;"

        break;


        case "ACD":

        strSql += "AND .....;"

        break;


        case "BCD":

        strSql += "AND .....;"

        break;


        case "AB":

        strSql += "AND .....;"

        break;


        case "AC":

        strSql += "AND .....;"

        break;


        case "AD":

        strSql += "AND .....;"

        break;


        case "BC":

        strSql += "AND .....;"

        break;


        case "BD":

        strSql += "AND .....;"

        break;


        case "CD":

        strSql += "AND .....;"

        break;


        case "A":

        strSql += "AND .....;"

        break;


        case "B":

        strSql += "AND .....;"

        break;


        case "C":

        strSql += "AND .....;"

        break;


        case "D":

        strSql += "AND .....;"

        break;

    }


查看完整回答
反對(duì) 回復(fù) 2022-10-23
?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

假設(shè)用戶選擇框 A、C、D。


strSql += "SELECT column1, column2, ...

      FROM table_name;"



     switch(checkboxvalue)

        {

        case (("ABCD")): //<---Contains "ACD" but not "B" NO MATCH

        strSql += "AND .....;"

        break;


        case (("ABC")): //<---- Contains "A" but not "BC" NO MATCH

        strSql += "AND.......;"

        break;


        case (("AB")): //<--Contains "A" but no "B" NO MATCH

        strSql += "AND......;"

        break; 


        case (("AC")): //<--Contains "AC" but no "D" NO MATCH

        strSql += "AND.....";

        break;


        case (("ACD")): //<--MATCH! 

        strSql += "AND......"; //<--add to select to pull correct data 

        break;


        }


查看完整回答
反對(duì) 回復(fù) 2022-10-23
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

由于您基本上是在比較布爾值,因此我建議您制作一個(gè)表格來映射您擁有的不同復(fù)選框組合,以驗(yàn)證您是否會(huì)更好地使用 if-else 或使用少數(shù)嵌套 if 而不是開關(guān)。嘗試重新考慮您將擁有多少輸出以及在這種情況下需要執(zhí)行哪些操作。


static void executeSQL(string checkboxes)

{

    switches checkbox_switches = new switches(checkboxes.Contains('A'), checkboxes.Contains('B'), checkboxes.Contains('C'), checkboxes.Contains('D'));

    if (checkbox_switches.action_A)

    {

        //Execute SQL

    }

    else if (checkbox_switches.action_B)

    {

        //Execute SQL

    }

    else if (checkbox_switches.action_C)

    {

        //Execute SQL

    }

    else if (checkbox_switches.action_D)

    {

        //Execute SQL

    }

    else if (checkbox_switches.action_E)

    {

        //Execute SQL

    }

}


struct switches

{

    public bool action_A, action_B, action_C, action_D, action_E;


    public switches(bool A, bool B, bool C, bool D)

    {

        action_A = A && B;

        action_B = B || D;

        action_C = C && D;

        action_D = action_A && C;

        action_E = !A && !B && !C && D;

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-10-23
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

我假設(shè)您可能正在嘗試根據(jù)選中的復(fù)選框選項(xiàng)構(gòu)建 where 子句條件。在這里,如果我們嘗試使用 switch 語句,我們可能最終會(huì)為每個(gè)組合編寫很多案例,這不會(huì)是有效的(比如 - a, ab, abc, abcd, ac, acd, ad, b , bc, bcd, bd, c, cd, d)。如果這些值不是按順序排列的,那么該組合將成倍增加。更糟。因此,使用帶有字符串構(gòu)建器的簡單條件語句來保存最終字符串將是有益的,如下所示 -


StringBuilder sb = new StringBuilder();

if (checkbox1.checked)

{

    sb.Apppend("Condition1");

}


if (checkbox2.checked)

{

    sb.Apppend("Condition2");

}


if (checkbox3.checked)

{

    sb.Apppend("Condition3");

}


if (checkbox4.checked)

{

    sb.Apppend("Condition4");

}


查看完整回答
反對(duì) 回復(fù) 2022-10-23
  • 4 回答
  • 0 關(guān)注
  • 169 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)