Перебрать список флажков - PullRequest
6 голосов
/ 16 июля 2010

Я создаю списки флажков:

<asp:CheckBoxList ID="CheckBoxes" DataTextField="Value" DataValueField="Key" runat="server"></asp:CheckBoxList>

И пытается получить значения выбранных предметов:

List<Guid> things = new List<Guid>();
foreach (ListItem item in this.CheckBoxes.Items)
{
    if (item.Selected)
        things.Add(item.Value);
    }
}

Я получаю ошибку

"Лучший перегруженный метод соответствует 'System.Collections.Generic.List.Add (System.Guid)' имеет недопустимые аргументы "

Ответы [ 3 ]

8 голосов
/ 16 июля 2010

Список 'вещей' исключает значение Guid. Вы должны преобразовать item.value в значение Guid:

List<Guid> things = new List<Guid>();
foreach (ListItem item in this.CheckBoxes.Items)
{
  if (item.Selected)
    things.Add(new Guid(item.Value));
}
4 голосов
/ 16 июля 2010

ListItem.Value имеет тип System.String, и вы пытаетесь добавить его к List<Guid>.Вы можете попробовать:

things.Add(Guid.Parse(item.Value));

Это будет работать до тех пор, пока строковое значение будет иметь значение Guid.Если это не ясно, вам нужно быть более осторожным и использовать Guid.TryParse(item.Value).

0 голосов
/ 16 июля 2010

Если метод Add вашего List принимает GUID (см. Сообщение об ошибке), но не принимает "item.value", то я предполагаю, что item.value не GUID.

Попробуйте:

...
things.Add(CTYPE(item.value, GUID))
...
...