合并List <string> </string>中的2个连续元素

时间:2014-03-17 07:53:51

标签: c# generic-list

假设字符串列表List<string> lst_fruits包含以下元素:

[1] apple
[2] peach
[3] pine
[4] apple
[5] pear
[6] ...

我正在寻找一种能够完成#3和#4组合任务的现有方法。

我曾考虑将#4的内容复制到#3并在#4处删除,但我想知道是否有更好的解决方案。

3 个答案:

答案 0 :(得分:2)

你对这种做法感到满意吗?

lst_fruits =
    lst_fruits
        .Take(2)
        .Concat(new []
        {
            String.Join("", lst_fruits.Skip(2).Take(2))
        })
        .Concat(lst_fruits.Skip(4))
        .ToList();

答案 1 :(得分:0)

最后,我接受了这个:

public static List<string> combine_list_elements(List<string> lst_original, int i, int j)
{
   if (lst_original.Count > i && lst_original.Count > j)
   {
       lst_original[i] += " " + lst_original[j];
       lst_original.RemoveAt(j);
   }
   else
   {
       throw new Exception("One of these 2 items does not exist in this list.");
   }
   return lst_original;
}

这很简单,不确定我为什么要寻找其他。

答案 2 :(得分:0)

    lst_fruits[2] = string.Concat(lst_fruits[2], " ", lst_fruits[3]);
    lst_fruits.RemoveAt(3);

示例中的列表索引也应该从零开始。 这是处理此问题的最简单方法,即使您似乎正在寻找更复杂的选项:)