C# 寻找组合框的通用类&;列表框以减少代码

C# 寻找组合框的通用类&;列表框以减少代码,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我的申请表中有两个不同的列表。每个用于一个组合框和一个列表框。我使用下面的可重用代码在控件中插入项。现在,我正在使用两个不同的函数。组合框和列表框是否有通用类,以便我可以在单个函数中完成工作 public void AddItemsComboBox(ComboBox combobox, List<string> list) { foreach (string s in list) { if (!combobox.Item

我的申请表中有两个不同的列表。每个用于一个组合框和一个列表框。我使用下面的可重用代码在控件中插入项。现在,我正在使用两个不同的函数。组合框和列表框是否有通用类,以便我可以在单个函数中完成工作

public void AddItemsComboBox(ComboBox combobox, List<string> list)
    {
        foreach (string s in list)
        {
            if (!combobox.Items.Contains(s))
            {
                combobox.Items.Add(s);
            }
        }
    }

    public void AddItemsListBox(ListBox listbox, List<string> list)
    {
        foreach (string s in list)
        {
            if (!listbox.Items.Contains(s))
            {
                listbox.Items.Add(s);
            }
        }
    }
public void AddItemsComboBox(组合框组合框,列表)
{
foreach(列表中的字符串s)
{
如果(!combobox.Items.Contains))
{
combobox.Items.Add(s);
}
}
}
public void AddItemsListBox(列表框列表框,列表列表)
{
foreach(列表中的字符串s)
{
如果(!listbox.Items.Contains))
{
listbox.Items.Add(s);
}
}
}

列表框和组合框类都源自一个共同的祖先,即
列表控件
。不幸的是,这不是定义
Items
属性的地方,因此我所能想到的最好方法需要进行一些运行时类型检查:

public void AddItems(ListControl lb, List<string> list)
{
    ListBox listBox = lb as ListBox;
    ComboBox comboBox = lb as ComboBox;
    foreach (string s in list)
    {
        if (listBox != null && !listBox.Items.Contains(s))
        {
            listBox.Items.Add(s);
        }
        else if (comboBox != null && !comboBox.Items.Contains(s))
        {
            comboBox.Items.Add(s);
        }
    }
}
公共无效附加项(列表控件lb,列表列表)
{
ListBox ListBox=lb作为ListBox;
ComboBox ComboBox=lb作为ComboBox;
foreach(列表中的字符串s)
{
if(listBox!=null&&!listBox.Items.Contains)
{
listBox.Items.Add(s);
}
else if(comboBox!=null&&!comboBox.Items.Contains)
{
comboBox.Items.Add(s);
}
}
}

如果方法相同,则可以使用动态控件

public void AddItems(dynamic control, List<string> list)
{
    foreach (string s in list)
        if (!control.Items.Contains(s))
            control.Items.Add(s);
}
公共无效附加项(动态控件、列表)
{
foreach(列表中的字符串s)
如果(!control.Items.Contains))
控制项。添加项;
}

你有什么错误?@MANISHKUMARCHOUDHARY我没有任何错误。。我只想把代码简化成一个函数