如果你想根据类型做不同的操作,你可以使用GroupBy
type
.
通过这样做,您可以获得与每个派生类型对应的子列表。
以下是代码片段
void Main()
{
List<IMachines> mList = new List<IMachines>();
mList.Add(new AC());
mList.Add(new Generator());
mList.Add(new AC());
mList.Add(new Generator());
mList.Add(new Generator());
mList.Add(new Generator());
var differentIMachines = mList.GroupBy(t=>t.GetType());
foreach(var grouping in differentIMachines)
{
Console.WriteLine("Type - {0}, Count - {1}", grouping.Key, grouping.Count());
foreach(var item in grouping)
{
//iterate each item for particular type here
}
}
}
interface IMachines { }
class AC : IMachines {}
class Generator : IMachines {}