计算集合中某种类型的对象,并将其用作文本框中的字符串

时间:2013-05-08 23:22:08

标签: c#

我想用一个集合中某种数字的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;。 我需要做些什么来完成这项工作?

1 个答案:

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