c#中的列表和类.试图获得两个不同类类型列表的计数
本文关键字:列表 两个 类型 同类 | 更新日期: 2023-09-27 18:15:33
我有两个列表,ListA
和ListB
。ListA
的类型为classA
, ListB
的类型为classB
。我有一个变量,它在两个类中选择一个。从这两个,我需要得到计数,因为我正在为不同的产品建立一个通用的页面。页面显示了值,但是在列表的情况下,我需要得到计数。
我的想法是:
object l;
if (ProductType == "A")
{
l = new List<classA>();
...
}
else
{
l = new List<classB>();
...
}
var counter = l.Count(); // it is not working
我使用一个对象来初始化列表,但也许我应该使用一个通用的IEnumerable
对象来做它(我不知道)。
classA
和classB
我认为它们继承自相同的基。
这一页的其余部分非常相似。
如何解决?
将l
的类型更改为System.Collections.IList
。
IList l;
if (ProductType == "A")
{
l = new List<classA>();
...
}
else
{
l = new List<classB>();
...
}
var counter = l.Count; // Count is a property here.
您可以将变量键入IList
或ICollection
(非泛型),这两个List<T>
都实现了,并且它们都可以为您提供Count
。
当然,如果您只关心计数而不关心其他,那么另一个选择是简单地将变量键入为int
,并让if
语句的每个部分直接分配计数,而不是整个列表。
如果您的目标是获得计数,那么ICollection
就足够了。
IList
,因为您可以访问列表本身,即添加或删除元素。
ICollection collection;
if (ProductType == "A")
{
collection = new List<classA>();
...
}
else
{
collection = new List<classB>();
...
}
var counter = collection.Count;