给定的
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/