Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#列表查找重复更新多个列表_C#_Asp.net_List - Fatal编程技术网

c#列表查找重复更新多个列表

c#列表查找重复更新多个列表,c#,asp.net,list,C#,Asp.net,List,我有3个列表lstickettype,lstQuantitylstAmount。我正在尝试合并票证类型并相应地更新其他两个列表 数据如下: lstTicketType | lstQuantity | lstAmount --------------------------------------- Standard | 1 | 8:5 Standard | 1 | 8.5 Student | 1

我有3个列表
lstickettype
lstQuantity
lstAmount
。我正在尝试合并票证类型并相应地更新其他两个列表

数据如下:

lstTicketType | lstQuantity | lstAmount
---------------------------------------
Standard      |     1       |   8:5
Standard      |     1       |   8.5
Student       |     1       |   6.5
Student       |     1       |   6.5
Senior        |     1       |    4
我可以使用

      var query = lstTicketType.GroupBy(x => x)
      .Where(g => g.Count() > 1)
      .Select(y => new { Counter = y.Count() })
      .ToList();
如何更新列表,使其看起来像

lstTicketType | lstQuantity | lstAmount
---------------------------------------
Standard      |     2       |    17
Student       |     2       |    13
Senior        |     1       |    4
尝试使用“Sum”。不要依赖我的答案,试着编写自己的代码来理解它是如何工作的。否则,您将永远不会知道如何编写代码。这是我的推荐信-

内部舱单
{
公共字符串TicketType{get;set;}
公共整数数量{get;set;}
公共十进制数{get;set;}
}
内部课程计划
{
私有静态void Main(字符串[]args)
{
var list=新列表();
添加(新票证(){TicketType=“Standard”,数量=1,金额=8.5m});
添加(新票证(){TicketType=“Standard”,数量=1,金额=8.5m});
添加(新票证(){TicketType=“Student”,数量=1,金额=6.5m});
添加(新票证(){TicketType=“Student”,数量=1,金额=6.5m});
添加(新票证(){TicketType=“Senior”,数量=1,金额=4m});
foreach(列表中的变量项)
{
System.Console.WriteLine($“TicketType:{item.TicketType},数量:{item.Quantity},金额:{item.Amount}”);
}
System.Console.WriteLine(“------------------------------------------------”);
list=list.GroupBy(x=>x.TicketType)。选择(x=>newticket())
{
TicketType=x.First().TicketType,
数量=x.总和(y=>y.数量),
金额=x.Sum(y=>y.Amount)
}).ToList();
foreach(列表中的变量项)
{
System.Console.WriteLine($“TicketType:{item.TicketType},数量:{item.Quantity},金额:{item.Amount}”);
}
System.Console.Read();
}
}
List tickets=新列表()
{
新票(){
TicketType=“标准”,
数量=1,
总面积=8.5M
},
新票(){
TicketType=“标准”,
数量=1,
总面积=8.5M
},
新票(){
TicketType=“学生”,
数量=1,
总高度=6.5M
},
新票(){
TicketType=“学生”,
数量=1,
总高度=6.5M
},
新票(){
TicketType=“高级”,
数量=1,
数量=4M
},
};
var groupTicket=tickets.GroupBy(p=>p.TicketType)。选择(t=>new
{
TicketType=t.键,
数量=t.总和(x=>x.数量),
金额=总金额(x=>x.Amout)
}).ToList();

您好,您的答案在下面的代码中

List<string> lstTicketType = new List<string>() { "Standard", "Standard", "Student", "Student", "Senior" };
        List<int> lstQuantity = new List<int>() { 1,1,1,1,1};
        List<double> lstAmount = new List<double>() {8.5 , 8.5 , 6.5 , 6.5 ,4};

        List<mergeClass> LstMC = new List<mergeClass>();

        for (int i = 0; i < lstTicketType.Count(); i++)
        {
            mergeClass NewMC = new mergeClass(lstTicketType[i], lstQuantity[i], lstAmount[i]);
            LstMC.Add(NewMC);
        }
        var query=LstMC.GroupBy(q=>q.TicketType)
                    .Select(q=>new{TicketType=q.First().TicketType,
                                    Quantity=q.Sum(a=>a.Quantity),
                                    Amount=q.Sum(a=>a.Amount)
                    }).ToList();
提示:使用
Sum()。
List<Ticket> tickets = new List<Ticket>()
            {
                new Ticket(){
                    TicketType="Standard",
                    Quantity =1,
                    Amout= 8.5M
                },
                new Ticket(){
                    TicketType="Standard",
                    Quantity =1,
                    Amout= 8.5M
                },
                new Ticket(){
                    TicketType="Student",
                    Quantity =1,
                    Amout= 6.5M
                },
                new Ticket(){
                    TicketType="Student",
                    Quantity =1,
                    Amout= 6.5M
                },
                new Ticket(){
                    TicketType="Senior",
                    Quantity =1,
                    Amout=4M
                },
            };

            var groupTicket = tickets.GroupBy(p => p.TicketType).Select(t => new
            {
                TicketType = t.Key,
                Quantity = t.Sum(x => x.Quantity),
                Amount = t.Sum(x => x.Amout)
            }).ToList();
List<string> lstTicketType = new List<string>() { "Standard", "Standard", "Student", "Student", "Senior" };
        List<int> lstQuantity = new List<int>() { 1,1,1,1,1};
        List<double> lstAmount = new List<double>() {8.5 , 8.5 , 6.5 , 6.5 ,4};

        List<mergeClass> LstMC = new List<mergeClass>();

        for (int i = 0; i < lstTicketType.Count(); i++)
        {
            mergeClass NewMC = new mergeClass(lstTicketType[i], lstQuantity[i], lstAmount[i]);
            LstMC.Add(NewMC);
        }
        var query=LstMC.GroupBy(q=>q.TicketType)
                    .Select(q=>new{TicketType=q.First().TicketType,
                                    Quantity=q.Sum(a=>a.Quantity),
                                    Amount=q.Sum(a=>a.Amount)
                    }).ToList();
 public class mergeClass
{
    public string TicketType { set; get; }
    public int Quantity { set; get; }
    public double Amount { set; get; }
    public mergeClass(string T, int Q, double A)
    {
        TicketType = T;
        Quantity = Q;
        Amount = A;
    }

}