6

チェックボックスリストを作成しています:

<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)'に最適なオーバーロードされたメソッドの一致には、いくつかの無効な引数があります "

4

3 に答える 3

8

'thing'リストは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));
}
于 2010-07-15T22:05:55.070 に答える
4

ListItem.ValueはタイプSystem.Stringであり、これをに追加しようとしていますList<Guid>。あなたは試すことができます:

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

文字列値が。に解析可能である限り、これは機能しますGuid。それが明確でない場合は、もっと注意して使用することをお勧めしますGuid.TryParse(item.Value)

于 2010-07-15T22:03:30.583 に答える
0

ListのAddメソッドがGUIDを受け入れているが(エラーメッセージを参照)、「item.value」を受け入れていない場合、item.valueはGUIDではないと思います。

これを試して:

...
things.Add(CTYPE(item.value, GUID))
...
于 2010-07-15T22:19:58.627 に答える