从嵌套列表中提取数据
本文关键字:提取 数据 列表 嵌套 | 更新日期: 2023-09-27 17:57:35
代码:
List<Expense> exp = new List<Expense>();
List<Budget> bud = new List<Budget>();
bud.Add(new Budget()
{
sal_tp = 0,
sal_fos_veri = 1
});
exp.Add(new Expense()
{
sal_tp =2,
sal_fos_veri = 3
});
bud.Add(new Budget()
{
sal_tp = 4,
sal_fos_veri = 5
});
exp.Add(new Expense()
{
sal_tp =6,
sal_fos_veri = 7
});
bud.Add(new Budget()
{
sal_tp = 8,
sal_fos_veri = 9
});
exp.Add(new Expense()
{
sal_tp =10,
sal_fos_veri = 11
});
bud.Add(new Budget()
{
sal_tp = 12,
sal_fos_veri = 13
});
exp.Add(new Expense()
{
sal_tp =14,
sal_fos_veri = 15
});
bud.Add(new Budget()
{
sal_tp = 16,
sal_fos_veri = 17
});
exp.Add(new Expense()
{
sal_tp =18,
sal_fos_veri = 19
});
bud.Add(new Budget()
{
sal_tp = 20,
sal_fos_veri = 21
});
exp.Add(new Expense()
{
sal_tp =22,
sal_fos_veri = 23
});
bud.Add(new Budget()
{
sal_tp = 24,
sal_fos_veri = 25
});
exp.Add(new Expense()
{
sal_tp =26,
sal_fos_veri = 27
});
部分类结束
public class Expense
{
public int sal_tp { get; set; }
public int sal_fos_veri { get; set; }
}
public class Budget
{
public int sal_tp { get; set; }
public int sal_fos_veri { get; set; }
}
期望输出类似:
*0 2 1 4 3 5。。。。等等….*
如何一次迭代两个列表?我试过类似的东西这个
for(int i=0;i<bud.Count;i++)
{
Expense explist=exp[i];
Budget budlist=bud[i];
Response.Write(budlist.sal_tp);
Response.Write(explist.sal_tp);
Response.Write(budlist.sal_fos_veri);
Response.Write(explist.sal_fos_veri);
}
问题:这将增加代码,我也想遍历"budlist"。就像我以前在java 中做过这样的事情
for(int i=0;i<data.size();i++)
{
for(int j=0;j<((ArrayList)data.get(i)).size();j++)
{
out.print("<td>");
out.print(((ArrayList)data.get(i)).get(j));
out.print("</td>");
out.print("<td>"+((ArrayList)exp_data.get(i)).get(j)+"</td>");
}
out.println("</tr>");
}
这样的事情可能吗?
尝试提取通用抽象作为
public interface IMoneyTransaction
{
int sal_tp { get; set; }
int sal_fos_veri { get; set; }
}
你的类声明会有一点变化:
public class Expense : IMoneyTransaction
{
public int sal_tp { get; set; }
public int sal_fos_veri { get; set; }
}
public class Budget : IMoneyTransaction
{
public int sal_tp { get; set; }
public int sal_fos_veri { get; set; }
}
将列表填写为:
var exp = new List<IMoneyTransaction>{
new Budget
{
sal_tp = 0,
sal_fos_veri = 1
}};
var bud = new List<IMoneyTransaction>{
new Expense
{
sal_tp =2,
sal_fos_veri = 3
}};
现在,您可以使用Union
合并数据,并使用一个通用接口对其进行迭代
var allItems = exp.Union(bud).ToArray();
for(int i = 0; i < allItems.Length; i++)
{
Console.WriteLine (allItems[i].sal_fos_veri);
Console.WriteLine (allItems[i].sal_tp);
}