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中了
*/
不要在意细节。。。就是用父类定义的数组,怎么查找各个子类的数量 展开
我的问题是,我现在有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中了
*/
不要在意细节。。。就是用父类定义的数组,怎么查找各个子类的数量 展开
1个回答
展开全部
分组统计
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);
}
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);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询