0

我想用集合中一种图形的 count+1 填充一个文本框。集合是Figure的Generic List,figure是某种类型Figure的实例。

以下作品:

txtName.Text = figures.OfType<Square>().Count().ToString();

但以下没有

txtName.Text = figures.OfType<figure.GetType()>().Count().ToString();

我收到错误“运算符'>'不能应用于'方法组'和'System.Type'类型的操作数”。我该怎么做才能完成这项工作?

4

1 回答 1

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();
于 2013-05-08T23:24:26.810 回答