值与先前值相同时进行Foreach

戴夫

我很难解释这个问题,但我认为这是我们许多人遇到的普遍问题。

假设我List<string, string>的格式如下:

1, value-
1, and value-
1, again value-
2, another value-
2, yet another value-

我想将List<string>转换为仅包含2个项目

value-and value-again value-
another value-yet another value

这基于数字(1或2)。

我通常使用的代码可以工作,但是看起来有些麻烦。

有没有更整洁的方法,可能与Linq有关?

一个快速的控制台应用程序来演示我正在尝试做的事情,希望比我的问题更好地解释它!

class Program
{
    static void Main(string[] args)
    {
        List<Tuple<string, string>> myTuple = new List<Tuple<string, string>>();
        myTuple.Add(new Tuple<string, string>("1", "value-"));
        myTuple.Add(new Tuple<string, string>("1", "and value-"));
        myTuple.Add(new Tuple<string, string>("1", "again value-"));
        myTuple.Add(new Tuple<string, string>("2", "another value-"));
        myTuple.Add(new Tuple<string, string>("2", "yet another value"));

        string previousValue = "";
        string concatString = "";
        List<string> result = new List<string>();
        foreach (var item in myTuple)
        {
            if (string.IsNullOrEmpty(previousValue)) 
                previousValue += item.Item1;

            if (previousValue == item.Item1)
                concatString += item.Item2;
            else
            {
                result.Add(concatString);
                concatString = "";
                previousValue = item.Item1;
                concatString=item.Item2;
            }
        }
        //add the last value
        result.Add(concatString);
    }
List<string> result = myTuple.GroupBy(t => t.Item1)
                     .Select(g => String.Join(" ", g.Select(tp=>tp.Item2)))
                     .ToList();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

值与先前值相同时进行Foreach

来自分类Dev

仅当值相同时,foreach循环内的值才求和

来自分类Dev

仅当值相同时,foreach循环内的值才求和

来自分类Dev

当一个值相同时对子数组进行分组

来自分类Dev

Laravel:当值与先前值不同时如何移动新行,foreach in blade

来自分类Dev

按值对关联数组进行降序排序,并在值相同时保留顺序

来自分类Dev

将一个值与 foreach 循环中的前一个值进行比较并删除相同的值?

来自分类Dev

在Java循环中将当前值与先前值进行比较

来自分类Dev

当多个值相同时删除字典键

来自分类Dev

当a列的值相同时,如何对b列的值求和?

来自分类Dev

在忽略值的同时对查询集进行排序

来自分类Dev

在忽略值的同时对查询集进行排序

来自分类Dev

在输入值的同时对数组进行排序

来自分类Dev

如果与时间序列中的先前值相同,则删除相同的值

来自分类Dev

Foreach和While循环输出相同的值

来自分类Dev

PHP数组在foreach中找到相同的值

来自分类Dev

PHP Foreach相同的键不同的值

来自分类Dev

Powershell .csv foreach 行添加相同的值

来自分类Dev

在 foreach 中找到相同的值并加入 PHP

来自分类Dev

在保存中间值的同时对值进行多重映射

来自分类Dev

如何与Seq [Double]中的先前值进行比较

来自分类Dev

使用先前选择返回的值进行联合选择

来自分类Dev

R:如何对特定 ID 的先前值进行计数/求和?

来自分类Dev

如何在AngularJS中绑定值之前获取先前值并与新值进行比较

来自分类Dev

在Jquery中对相同值进行多次验证

来自分类Dev

按相同的列值对结果进行分组

来自分类Dev

使用先前值的公式

来自分类Dev

查询以汇总先前的值

来自分类Dev

显示seekbar的先前值

Related 相关文章

  1. 1

    值与先前值相同时进行Foreach

  2. 2

    仅当值相同时,foreach循环内的值才求和

  3. 3

    仅当值相同时,foreach循环内的值才求和

  4. 4

    当一个值相同时对子数组进行分组

  5. 5

    Laravel:当值与先前值不同时如何移动新行,foreach in blade

  6. 6

    按值对关联数组进行降序排序,并在值相同时保留顺序

  7. 7

    将一个值与 foreach 循环中的前一个值进行比较并删除相同的值?

  8. 8

    在Java循环中将当前值与先前值进行比较

  9. 9

    当多个值相同时删除字典键

  10. 10

    当a列的值相同时,如何对b列的值求和?

  11. 11

    在忽略值的同时对查询集进行排序

  12. 12

    在忽略值的同时对查询集进行排序

  13. 13

    在输入值的同时对数组进行排序

  14. 14

    如果与时间序列中的先前值相同,则删除相同的值

  15. 15

    Foreach和While循环输出相同的值

  16. 16

    PHP数组在foreach中找到相同的值

  17. 17

    PHP Foreach相同的键不同的值

  18. 18

    Powershell .csv foreach 行添加相同的值

  19. 19

    在 foreach 中找到相同的值并加入 PHP

  20. 20

    在保存中间值的同时对值进行多重映射

  21. 21

    如何与Seq [Double]中的先前值进行比较

  22. 22

    使用先前选择返回的值进行联合选择

  23. 23

    R:如何对特定 ID 的先前值进行计数/求和?

  24. 24

    如何在AngularJS中绑定值之前获取先前值并与新值进行比较

  25. 25

    在Jquery中对相同值进行多次验证

  26. 26

    按相同的列值对结果进行分组

  27. 27

    使用先前值的公式

  28. 28

    查询以汇总先前的值

  29. 29

    显示seekbar的先前值

热门标签

归档