Как использовать трюки в комбинации условий "ЕСЛИ"? (C # ASP.NET) - PullRequest
1 голос
/ 29 октября 2010

У меня есть четыре флажка в моей форме. У меня есть строковая переменная с именем «CheckedString». Если я отмечаю первый флажок, «A» должен быть назначен «CheckedString». Если я выберу первый и второй флажок одновременно. «AB» должен быть присвоен «CheckedString». Если я выберу третий и четвертый флажок, «CD» должен быть назначен «CheckedString». Так что существует несколько комбинаций. Как реализовать это на диезе. Пожалуйста помоги?

Ответы [ 5 ]

4 голосов
/ 29 октября 2010

Псевдокод, так как мой VS2008 в настоящее время находится в состоянии "шланг", и я не могу проверить:

string CheckedString = ""
if checkbox a is set:
    CheckedString += "A"
if checkbox b is set:
    CheckedString += "B"
if checkbox c is set:
    CheckedString += "C"
if checkbox d is set:
    CheckedString += "D"

Вуаля! Там у вас есть это. Вы просто добавляете значение для каждого флажка в порядке.

3 голосов
/ 29 октября 2010
string result = String.Format("{0}{1}{2}{3}", 
                  checkboxA.Checked ? "A" : string.Empty,
                  checkboxB.Checked ? "B" : string.Empty,
                  checkboxC.Checked ? "C" : string.Empty,
                  checkboxD.Checked ? "D" : string.Empty
                );
2 голосов
/ 29 октября 2010
string CheckedString = (cbxA.Checked ? "A" : "") + 
            (cbxB.Checked ? "B" : "") + 
            (cbxC.Checked ? "C" : "") + 
        (cbxD.Checked ? "D" : "");
2 голосов
/ 29 октября 2010

иди с паксдиабло.Для более общего решения вы можете сделать что-то подобное в LINQ (при условии, что у вас есть флажки в массиве):

var chars = Enumerable.Range(0, checkBoxes.Length) // 0, 1, 2, 3
                      .Where(i => checkBoxes[i].Checked) // 0, 2
                      .Select(i => (char)('A' + i)); // A, C

var myString = new string(chars.ToArray()); // "AC"

или с циклом for:

var sb = new StringBuilder();

for (int i = 0; i < checkBoxes.Length; i++)
{
    if (checkBoxes[i].Checked)
        sb.Append((char)('A' + i));
}

var myString = sb.ToString();
1 голос
/ 29 октября 2010

Вот как они пишут в C # и используют функцию (возможность повторного использования):

string CheckedString = string.Empty;
CheckedString += AssignCheckBox(chkBoxFirst, "A");
CheckedString += AssignCheckBox(chkBoxSecond, "B");
CheckedString += AssignCheckBox(chkBoxThird, "C");
CheckedString += AssignCheckBox(chkBoxFourth, "D");

И функция:

public string AssignCheckBox(CheckBox chk, string strSet)
{
    return chk.Checked ? strSet : string.Empty;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...