Linq 无法从“System.Collections.Generic.IEnumerable

Linq 无法从“System.Collections.Generic.IEnumerable,linq,Linq,我正在处理这些列表,以便从组合框中获取与所选项目匹配的项目 private void InitializaMessageElement() { if (_selectedTransactionWsName != null) { 从这里的下拉列表中获取与所选项目匹配的事务webservice名称,输出=TestWS,这是正确的 var getTranTypeWsName = TransactionTypeVModel .GetAllTransactionTypes()

我正在处理这些列表,以便从组合框中获取与所选项目匹配的项目

private void InitializaMessageElement()
{
    if (_selectedTransactionWsName != null)
    {
从这里的下拉列表中获取与所选项目匹配的事务webservice名称,输出=TestWS,这是正确的

var getTranTypeWsName = TransactionTypeVModel
     .GetAllTransactionTypes()
     .FirstOrDefault(transTypes => 
             transTypes.WsMethodName == _selectedTransactionWsName);
循环树节点列表中的wsnames列表。这里它给了我所有的节点,这是正确的

var wsNameList = MessageElementVModel
     .GetAllTreeNodes().Select(ame => 
             ame.Children).ToList();//. == getTranTypeWsName.WsMethodName);
在wsNameList中找到getTranTypeWsName.WsMethodName。这就是我的问题所在:

      var msgElementList = wsNameList.Select(x => x.Where(ame => getTranTypeWsName != null && ame.Name == getTranTypeWsName.WsMethodName)).ToList();
我的MsgElement列表:

   _msgElementObsList = new ObservableCollection<MessageElementViewModel>(msgElementList);
    this.messageElements = _msgElementList;
    NotifyPropertyChanged("MessageElements");
}
这里抛出的异常无法从“System.Collections.Generic.IEnumerable”转换。您可以将msgElementList重新编译为

getTranTypeWsName!=null不属于这里,我不认为,因为它不能与lambda的任何成员进行比较。

您能将msgElementList修改为


getTranTypeWsName!=null不属于其中,我不认为,因为它不能与lambda的任何成员进行比较。

您有一个IEnumerable列表,而不是MessageElementViewModel列表。这就是您抛出错误的原因

不确定您需要哪一个,但您可以像这样修复Select函数

var msgElementList = wsNameList.Select(x => x.Where(ame => getTranTypeWsName != null && ame.Name == getTranTypeWsName.WsMethodName).First()).ToList();


您有一个IEnumerable列表,而不是MessageElementViewModel列表。这就是您抛出错误的原因

不确定您需要哪一个,但您可以像这样修复Select函数

var msgElementList = wsNameList.Select(x => x.Where(ame => getTranTypeWsName != null && ame.Name == getTranTypeWsName.WsMethodName).First()).ToList();


编译器究竟为哪一行抛出异常?MsgElementObsList=newobserveCollectionmsgelementList。。。msgElementList是有错误的。编译器究竟为哪一行引发异常?MSGelementToBSList=new ObservableCollectionmsgElementList。。。msgElementList是有错误的。谢谢。从@CeresThank得到了答案。从@Ceres那里得到了答案
var msgElementList = wsNameList.SelectMany(x => x.Where(ame => getTranTypeWsName != null && ame.Name == getTranTypeWsName.WsMethodName)).ToList();