将对象转换为List <string> </string>

时间:2013-03-07 13:46:13

标签: c# .net wpf

我从ListBox的WPF附加行为中获取所选项目的列表,如下所示:

  private void ListBoxSelectionChanged(object param)
    {
        var selectedItems = param;
        SelectedMItems = selectedItems.ToString().Split(',').ToList<string>();
        //Console.WriteLine(selectedItems.ToString());

    }

虽然它有效但是还有其他更好的方法。

2 个答案:

答案 0 :(得分:2)

SelectedItems属性是IList,所以我假设你的对象也是。

在这种情况下,最简单的做法是:

// If the list already contains strings
SelectedMItems = ((IList)selectedItems).Cast<string>().ToList();

// If the list contains other objects
SelectedMItems = ((IList)selectedItems).Cast<object>().Select(o => o.ToString()).ToList();

答案 1 :(得分:1)

这样的事情可能有用,为了“更安全”:

var items = param as ObservableCollection<string>;

甚至只是一个可枚举的:

var items = param as IEnumerable<string>;

然后你有一系列正确的项目。