给定的

   var selectedItems = listBoxControl1.SelectedItems;
   var selectedItemsList = (from i in selectedItems
                             select i).ToList();

我收到错误


using system.LINQ 完成

我可以使用 foreach 所以它必须实现 IEnumerable 。如果可能的话,我更喜欢使用 LINQ 而不是 foreach 来收集每个字符串。

我想为列表框控件中的每个 SelectedItem 获取 ToString() 值并将它们粘贴在 List<string> 中。我该怎么做?

最佳答案



这实际上不是真的,但这在这里无关紧要。它确实实现了 IEnumerable ,但没​​有实现 IEnumerable<T> ,这是 LINQ 的作用。

列表中的实际内容是什么?如果它已经是字符串,则可以使用:

var selectedItemsList = selectedItems.Cast<string>().ToList();

或者如果它是“任何对象”并且你想调用 ToString 你可以使用:
var selectedItemsList = selectedItems.Cast<object>()
                                     .Select(x => x.ToString())
                                     .ToList();

请注意,对 Cast 的调用是错误消息建议使用显式类型范围变量的原因 - 以 from Foo foo in bar 开头的查询表达式将转换为 bar.Cast<Foo>()...

关于c# - 找不到查询模式错误的实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9805974/

10-17 02:16