c#循环迭代匿名类链表(可迭代的匿名类)

Main()
{
//为什么?object是基类啊!!
//报错。不能从List<anonymous>换成List<object>.
//var q=(List<object>)GetWholeProcessInfo();
//Console.WriteLine(q[0].ToString()); int i = ;
foreach (var item in (IEnumerable<object>)GetWholeProcessInfo())
{
//类型都一样,所以输出一次即可:System.Int32,System.String,System.Int64
//输出所含的属性名的完整类型,
if (i == )
{
Console.WriteLine(item.GetType());
i++;
}
//手动反射获取各属性,然后按自定义方法输出或获取值
//ID=1;Name=xxxxx,Size=2
Tools.OutputParams(item.GetType().GetProperty("ID").GetValue(item, null)
, item.GetType().GetProperty("Name").GetValue(item, null)
, item.GetType().GetProperty("Size").GetValue(item, null)); //系统默认方式输出:{ID=1,Name=xxxxx,Size=2}
//和前者一个效果
//Console.WriteLine(item.ToString());
} } /// <summary>
/// 获取进程列表
/// </summary>
/// <returns>只能以object返回,除非手动写个属性类,循环迭代包装</returns>
public static object GetWholeProcessInfo()
{
//返回进程列表的ID,Name,Size属性
return Process.GetProcesses()
.Select(ps => new { ID = ps.Id, Name = ps.ProcessName, Size = ps.WorkingSet64 / / , })
.ToList();
}
上一篇:【BZOJ1013】球形空间产生器(高斯消元)


下一篇:Codeforce Round #222 Div2