我想用一个集合中某种数字的count + 1填充一个文本框。 该集合是图的通用列表,图是某种类型的图的实例。
以下作品:
txtName.Text = figures.OfType<Square>().Count().ToString();
但是以下是
txtName.Text = figures.OfType<figure.GetType()>().Count().ToString();
我收到错误&#34;运营商&#39;&gt;&#39;不能应用于类型&#39;方法组的操作数&#39;和&#39; System.Type&#39;&#34;。 我需要做些什么来完成这项工作?
答案 0 :(得分:2)
需要在编译时指定泛型类型参数,但GetType()
是在运行时调用的函数,因此这根本不起作用。该错误消息表明编译器正在尝试将您的代码解释为figures.OfType < figure.GetType() ...
,这没有多大意义。
你可以这样做:
// Count figures whose type is exactly equal to the type of figure
txtName.Text = figures.Count(x => figure.GetType() == x.GetType()).ToString();
// Count figures whose type is equal to or a subtype of the type of figure
txtName.Text = figures.Count(x => figure.GetType().IsAssignableFrom(x.GetType())).ToString();