我试图帮助其他人并撰写此查询:
var foundTab = (from tab in tabControl1.TabPages
where tab.Name == "tabName"
select tab).First();
他们报告说他们收到了这个错误:
无法找到实现 源类型的查询模式 System.Windows.Forms.TabControl.TabPageCollection”。 '哪里'找不到。明确考虑 指定范围的类型 变量'tab'。
我查看了MSDN,并TabPageCollection
实施了IList
,ICollection
,IEnumerable
。那么,这里发生了什么?该错误意味着什么,是否有另一种方法来查询Tab Control的TabPages
属性?
答案 0 :(得分:8)
试试这个:
var tab = (from System.Windows.Forms.TabPage tab in tabControl1.TabPages
where tab.Name == "tabName"
select tab).First();
此代码指定范围变量的类型。
答案 1 :(得分:4)
TabPageCollection
实现IEnumerable
但不是IEnumerable<T>
,这是LINQ使用的。要修复,请使用类似的强制转换方法:
var foundTab = (from tab in tabControl1.TabPages.Cast<TabPage>()
where tab.Name == "tabName"
select tab).First();
答案 2 :(得分:2)
但是,但是......?如果你有名字,你可以直接引用它吗?的TabPages [ “TABNAME”]
答案 3 :(得分:0)
试试这个:
var tab = tabControl1.TabPages.FirstOrDefault(t => t.Name == "tabName");
另外,请确保您有
using System.Linq;
位于文件顶部。
迪伦