我正在处理这些列表,以获得与组合框中所选项目匹配的项目.
private void InitializaMessageElement()
{
if (_selectedTransactionWsName != null)
{
Run Code Online (Sandbox Code Playgroud)
获取与下拉列表中所选项目匹配的事务Web服务名称,输出= TestWS,这是正确的
var getTranTypeWsName = TransactionTypeVModel
.GetAllTransactionTypes()
.FirstOrDefault(transTypes =>
transTypes.WsMethodName == _selectedTransactionWsName);
Run Code Online (Sandbox Code Playgroud)从treenode列表中循环wsnames列表.在这里它给了我所有正确的节点.
var wsNameList = MessageElementVModel
.GetAllTreeNodes().Select(ame =>
ame.Children).ToList();//. == getTranTypeWsName.WsMethodName);
Run Code Online (Sandbox Code Playgroud)在wsNameList中找到getTranTypeWsName.WsMethodName.这是我遇到问题的地方:
var msgElementList = wsNameList.Select(x => x.Where(ame => getTranTypeWsName != null && ame.Name == getTranTypeWsName.WsMethodName)).ToList();
Run Code Online (Sandbox Code Playgroud)我的MsgElement列表:
MsgElementObsList = new ObservableCollection<MessageElementViewModel>(msgElementList);
this.messageElements = _msgElementList;
NotifyPropertyChanged("MessageElements");
}
Run Code Online (Sandbox Code Playgroud)
这里抛出了施法错误.为什么不工作?我是LINQ的新手.谢谢
SLa*_*aks 15
正如错误试图告诉你的那样,LINQ方法返回特殊的迭代器类型实现IEnumerable<T>; 他们不回来List<T>.
这可以实现延迟执行.
由于对象实际上不是a List<T>,因此无法将其强制转换为不属于的类型.
如果你需要一个List<T>,你可以调用ToList(),或完全跳过LINQ并使用List<T>.ConvertAll(),就像Select(),但确实返回List<T>.
| 归档时间: |
|
| 查看次数: |
22886 次 |
| 最近记录: |