C# 获取数组中不同类型的类的数量

语法可能有错误,因为VS过期了,我的问题是,我现在有dev_list了,如何知道dev_list中PC的数量,router的数量/*以下为定义publicclassDev... 语法可能有错误,因为VS过期了,
我的问题是,我现在有dev_list了 ,如何知道dev_list中PC的数量,router的数量

/* 以下为定义
public class Device//设备类,用于介绍节点中每个设备的信息
{
public string ip;//data文件中出packet还有4个参数(一共五个),如下
public string mac;
//public Packet packet;//介绍发包的详情
public Device[] reciver;//可能发送给若干个机器 ,此数组记录发送给哪些机器
public Packet[] packet;//介绍发包的详情 ,与Device一一对应
}
public class PC:Device
{
}

public class Router:Device
{
}

public class Packet
{
public TCP tcp;
public UDP udp;
public ICMP icmp;
public ARP arp;
public RARP rarp;
}

public class Protocol
{
public string numberA2B;//发包
}
//只做发包,接受消息的行为由别的设备的发包来实现

public struct TCP:Protocal//以下五个结构体定义为Packet内的部分,结构相似
{
}

public struct UDP:Protocal
{
}

public struct ICMP:Protocal
{
}

public struct ARP:Protocal
{
}

public struct RARP:Protocal
{
}

*/

//以下为一个具体的赋值
/*
Device dev1=new PC();
Device dev2=new Router();

dev1.ip="118.202.1.2";//ip
dev2.ip="118.202.1.3";

dev1.mac="00-50-BA-CE-07-0C";//mac
dev2.mac="00-49-NG-ZE-72-3A";

dev1.reciver = new Device[1]{dev2};//只有一台
dev2.reciver = new Device[1]{dev1};//

Packet packet1= new Packet();//对应与dev2的交互
packet1.tcp="57";
packet1.udp="120";
packet1.arp="42"
packet1.icmp="481"
packet1.rarp="331";

dev1.packet = new Packet[1]{packet1}; //将上述数据装进包里赋值

Packet packet2= new Packet();//同上
packet2.tcp="237";
packet2.udp="126";
packet2.arp="242"
packet2.icmp="81"
packet2.rarp="321";

dev2.packet = new Packet[2]{packet2};

Device[] dev_list= new Device[2] { dev1 , dev2 }; //所有数据储存在dev_list中了

*/
不要在意细节。。。就是用父类定义的数组,怎么查找各个子类的数量
展开
 我来答
szqaly
2015-11-08 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1539万
展开全部
分组统计
var g = from item in dev_list group item by item.GetType().Name into fd select new { name =fd.Key , Count = fd.Count() };
foreach (var a in g)
{
Console.WriteLine("{0} {1}", a.name, a.Count);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式