9

我有一个 X 类型的列表。X 是一个属性级别类。现在在一个事件中,我需要将 CheckedListBox 选定项目放入另一个列表中。

如何获得输出......?我试过的代码如下...

public void Initialize(List<X> x1)
{
        chkList.DataSource = x1;
        chkList.DisplayMember = "MeterName"; // MeterName is a property in Class X
        chkList.ValueMember = "PortNum"; // PortNum is a property in Class X
}

private void Click_Event(object sender, EventArgs e)
{

List<X> x2 = new List<X>();
// Here I want to get the checkedListBox selected items in x2;
// How to get it...???

}
4

5 回答 5

22

你可以试试以下

 List<X>  x2 =  chkList.CheckedItems.OfType<X>().ToList();

或投射为对象

List<object>  x2 = chkList.CheckedItems.OfType<object>().ToList();
于 2012-12-19T05:17:22.847 回答
2

这是一种对我有用的方法:

List<X> x2 = new List<X>();
x2 = chkList.CheckedItems.Cast<X>().ToList();
于 2013-08-16T15:42:16.910 回答
1

我得到了答案

private void Click_Event(object sender, EventArgs e)
{

List<X> x2 = new List<X>();
foreach (X item in chkList.CheckedItems)
    {
        x2.Add(item);
    }
}
于 2012-12-19T05:30:23.213 回答
0
string[] miList = chkList.CheckedItems.OfType<object>().Select(li => li.ToString()).ToArray();
于 2014-12-30T16:33:56.917 回答
0

这是另一个选项

List<X> lst = new List<X>(chkList.CheckedItems.Cast<X>());
于 2016-11-19T08:39:40.863 回答