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