c#-多态性仅打印多态性列表中的一个类对象
如何仅打印多态列表中的一个类? 例如,program.cs中有一个多态性列表c#-多态性仅打印多态性列表中的一个类对象,c#,polymorphism,C#,Polymorphism,如何仅打印多态列表中的一个类? 例如,program.cs中有一个多态性列表 List<Person> personList = new List<Person>(); static void DisplayVisitor(List<Person> pList) { foreach (Person p in pList) { if (p.Equals(Visito
List<Person> personList = new List<Person>();
static void DisplayVisitor(List<Person> pList)
{
foreach (Person p in pList)
{
if (p.Equals(Visitor))
Console.WriteLine(p);
}
}
List personList=new List();
静态void DisplayVisitor(列表pList)
{
foreach(pList中的p人)
{
如果(p.Equals(访客))
控制台写入线(p);
}
}
我在Person类中有Resident和Visitor类。我已经创建了几个居民和访客,但如何仅显示我的人员列表中的访客。
如何检查列表中的访问者对象?使用运算符检查对象类型
if (p is Visitor v) // with type pattern
Console.WriteLine(v);
请注意,您可以使用类型为的Linq方法过滤列表,以仅获取特定类型的项:
foreach(var v in pList.OfType<Visitor>())
Console.WriteLine(v);
foreach(pList.OfType()中的变量v)
控制台写入线(v);
您可以使用操作员检查p是否为访客类型
is运算符检查表达式结果的运行时类型是否为
与给定类型兼容
除了其他答案外,你还可以使用下面的答案
static void DisplayVisitor(List<Person> pList)
{
foreach (Person p in pList)
{
if (p is Visitor)
Console.WriteLine(p);
}
}
static void DisplayVisitor(列表pList)
{
foreach(pList中的p人)
{
if(p为访客)
控制台写入线(p);
}
}
static void DisplayVisitor(List<Person> pList)
{
foreach (Person p in pList)
{
if (p is Visitor)
Console.WriteLine(p);
}
}