从嵌套列表中提取数据

本文关键字:提取 数据 列表 嵌套 | 更新日期: 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);
}