本文介绍了C# 使用带求和的元组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我有这张桌子:

CODE_DEST | NBR_COLIS | POIDS
-----------------------------
     a    |     6     | 2
     b    |     7     | 5
     c    |     1     | 1
     a    |     5     | 3
     a    |     3     | 1
     b    |     4     | 4
     g    |     2     | 4

我加了:

     CODE_DEST | NBR_COLIS | POIDS
    -----------------------------
         a    |     10    | 3
         a    |     4     | 3
         b    |     10    | 4,5
         b    |     1     | 4,5
         c    |     1     | 1
         g    |     2     | 4

这意味着按 NBR_COLIS LIMIT 按 10 和 NBR_COLIS 上的 AVG POODS 分组

that meant group by NBR_COLIS LIMIT by 10 and AVG POIDS on NBR_COLIS

我的代码:

List<Tuple<string, int, decimal>> oListTUP = new List<Tuple<string, int, decimal>>();
                while (readerOne.Read())
                {
                    Tuple<string, int, decimal> oTup = new Tuple<string, int, decimal>(readerOne["CODE_DEST"].ToString(), Convert.ToInt32(readerOne["NBR_COLIS"]), Convert.ToDecimal(readerOne["POID"]));
                    oListTUP.Add(oTup);

                }

                var result = oListTUP
                    .GroupBy(x => x.Item1)
                    .Select(g => new
                    {
                        Key = g.Key,
                        Sum = g.Sum(x => x.Item2),
                        Poids = g.Sum(x => x.Item3),
                    })
                    .Select(p => new
                    {
                        Key = p.Key,
                        Items = Enumerable.Repeat(10, p.Sum / 10)
                                          .Concat(Enumerable.Repeat(p.Sum % 10, 1)),
                        CalculPoids = p.Poids / Items.Count

                    })
                    .SelectMany(p => p.Items.Select(i => Tuple.Create(p.Key, i, p.CalculPoids)))
                    .ToList();

                foreach (var oItem in result)
                {
                    Label1.Text += oItem.Item1 + "--" + oItem.Item2 + "--" + oItem.Item3 + "<br>";
                }

我遇到了无法安静工作的 POIDS 的问题.

I have the problem with POIDS that not work quietly.

问题是:CalculPoids = p.Poids/Items.Count

我发现我的 Items.Count 总是 0

I found that my Items.Count always 0

推荐答案

我发现:

 CalculPoids = p.Poids/(Enumerable.Repeat(10, p.Sum / 10).Concat(Enumerable.Repeat(p.Sum % 10, 1))).Count()

这篇关于C# 使用带求和的元组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-09 02:28