c# - 使用来自同一个 List<string> 的 Take() 和 Skip() 连接字符串

标签 c#

我有一个 List<string>名为 Items 的列表中的第一项将始终如下所示(已包含分隔符):

string1\\string1

那么其余的项目将是一个没有 separator (\\) 的普通字符串.

我正在尝试 string.Join它们全部并获得如下所示的字符串表示形式。

somestring1\\somestring1\\somestring2\\somestring3

我正在尝试这样的事情,但它没有正确绑定(bind)。加入这些的正确方法是什么?:

string path = string.Join(@"", Items.Take(1), string.Join(@"\\", Items.Skip(1)));

更新:

var items = new List<string>();
items.AddRange(HeaderCollection.Select(item => item.Header));
var path = string.Join(@"\\", items.ToArray());

正在生产

somestring1\\somestring1\\\\somestring2

enter image description here

enter image description here

如果我跳过列表中的第一项,这将起作用。不知道什么会导致双重 \\\\

var header = string.Join(@"\\", items.Skip(1));

最佳答案

我希望是这么简单:

  string path = string.Join(@"\\", Items.ToArray());

例如这个程序:

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<String> list = new List<String>();
        list.Add(@"One\\Two");
        list.Add(@"Three");
        list.Add(@"Four");

        String s = String.Join(@"\\", list.ToArray());

        Console.WriteLine(s);
    }
}

产生这个输出:

One\\Two\\Three\\Four

关于c# - 使用来自同一个 List<string> 的 Take() 和 Skip() 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29837993/

相关文章:

c# - ActionLink 显示错误的网址

c# - Xamarin forms 单击一次显示上下文菜单

c# - 使用 FindControl 设置事件用户控件的属性

c# - 循环与自定义类

c# - Intel 的开源 UPnP 库可以与 VB6 一起使用吗?

c# - 当需要在悬停时访问特定子类信息时,如何在 Unity C# 中向下转型?

C# 循环遍历两个列表,从列表 #2 中删除重复项

c# - 是否有任何真实世界的 SharpKit 应用程序?

c# - 为什么在 ASP.NET 中使用中继器?

c# - 如何更改c#中窗口窗体的原点即左上角和openGL C即中心?