代码之家  ›  专栏  ›  技术社区  ›  Resistance

将CheckedListBox选定项作为字典检索

  •  1
  • Resistance  · 技术社区  · 10 年前

    我的表单上有一个选中的列表框,我使用字典填充该列表框。当我填充框时,它工作得很好,但当我试图检索所选对象时,我无法确定如何将其作为字典来执行。

    我的代码来填充它:

    reader = widgetSelection.ExecuteReader();
    while (reader.Read())
    {
     widgets.Add(reader.GetInt32(0), reader.GetString(reader.GetOrdinal("name")));
    }
    
    foreach (var widget in widgets)
    {
        chbWidgets.Items.Add(widget);
    }
    

    它填充得很好,但任何尝试执行foreach或任何其他操作的尝试都只能作为对象返回,我无法找到正确的方式来投射项目。任何帮助都会很好。

    1 回复  |  直到 10 年前
        1
  •  1
  •   StriplingWarrior    10 年前

    如果 widgets 在您的示例中 Dictionary<int, string> 然后 chbWidgets.Items.Add(widget) 正在添加 KeyValuePair<int, string> Items 收集要获取所选项目,您可能可以使用 chbWidgets.CheckedItems.Cast<KeyValuePair<int, string>>() .