简体   繁体   English

将对象转换为列表<String>

[英]Converting Object to List<String>

I am getting the List of selected Items from WPF Attached Behavioral for ListBox as below: 我从ListBox的WPF附加行为中获取所选项目的列表,如下所示:

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

    }

Though it works , is there any other better way. 虽然它有效,但还有其他更好的方法。

The SelectedItems property is an IList , so I'm assuming your object is as well. SelectedItems属性是一个IList ,所以我假设您的对象也是如此。

In this case, it would be simplest to do one of these two: 在这种情况下,最简单的做到这两个中的一个:

// 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();

Something like this might work, in order to be 'safer': 这样的事情可能有用,为了“更安全”:

var items = param as ObservableCollection<string>;

Or even just an enumerable: 或者甚至只是一个可枚举的:

var items = param as IEnumerable<string>;

Then you have a collection of items proper. 然后你有一个正确的项目集合。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM