如何将项目添加到数组以替换变量

3

我想创建一个字符串变量的数组,以便了解哪些文本框已被选中,例如:

string[] checkedItems = new string[10];

        foreach (object item in checkedList.CheckedItems)
        {
            checkedItems.SetValue(item, 0);                                                         
        }

我需要了解哪些复选框被选中,然后显示结果。之后,将使用这些结果来比较Excel电子表格。因此,每个项目都是一个“列”。

我也尝试过写:

checkedItems.SetValue(item, 0);
checkedItems.SetValue(item, 1);
checkedItems.SetValue(item, 2);
checkedItems.SetValue(item, 3);

这只是举个例子:
Array slot 1 = DocID
Array slot 2 = DocID
Array slot 3 = DocID.

我认为这是因为它仅仅是在循环每个复选框。有10个。

1
这个 checkedItems.SetValue(item, 0); 只会在循环选中的项目时重复覆盖索引为 0 的元素,你尝试使用 for 循环并传入索引了吗?DocID 是从哪里来的?你是如何输出这些值的? - DGibbs
似乎您正在尝试将一个“对象”设置为一个“字符串”元素。 - IAbstract
1个回答

2
根据 MSDN 上的信息,示例显示:
foreach(object itemChecked in checkedListBox1.CheckedItems) {

    // Use the IndexOf method to get the index of an item.
    MessageBox.Show("Item with title: \"" + itemChecked.ToString() + 
                    "\", is checked. Checked state is: " + 
                    checkedListBox1.GetItemCheckState(checkedListBox1.Items.IndexOf(itemChecked)).ToString() + ".");
}

适应您的问题,我们可以这样做:
string[] GetCheckedItems() {
    //  use a list because the number is not interrogated
    var checkedItems = new List<string>();

        foreach (object item in checkedList.CheckedItems) {
            checkedItems.Add(item.ToString());                                                         
        }

    return checkedItems.ToArray();
}

...或者你可以询问已选项目的数量:
string[] GetCheckedItems() {
    //  interrogate checked items count
    var checkedItems = new string[checkedList.CheckedItems.Count];

        for (int i = 0; i < checkedItems.Length; i++) {
            checkedItems[i] = checkedList.CheckedItems[i].ToString();                                                         
        }

    return checkedItems;
}

"...或者如果您对Linq感到熟悉并且感到舒适:"
string[] GetCheckedItems() {
    return checkedList.CheckedItems
        .Select(ci => ci.ToString())
        .ToArray();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接