在C#中将所有列表内容连接到一个字符串中

时间:2010-05-22 00:51:57

标签: c# list

如何在C#中的一个字符串中连接列表的所有内容?

9 个答案:

答案 0 :(得分:82)

搜索:

List<string> list = new List<string>(); // { "This ", "is ", "your ", "string!"};
list.Add("This ");
list.Add("is ");
list.Add("your ");
list.Add("string!");

string concat = String.Join(" ", list.ToArray());

答案 1 :(得分:6)

您可以使用Aggregate函数连接列表中的所有项目。

以下是用逗号“,”

连接列表中所有项目的示例
string s = list.Aggregate((i, j) => i + "," + j).ToString();

答案 2 :(得分:6)

如果您需要在加入时转换列表元素,可以使用LINQ

string.Join(", ", mylist.Select(z => MyMethod(z)));

示例:

IEnumerable<string> mylist = new List<string>() {"my", "cool", "list"};
string joined = string.Join(", ", mylist.Select(z => MyMethod(z)));


public string MyMethod(string arg)
{
    return arg.ToUpper();
}

答案 3 :(得分:2)

以下是StringBuilder的简单解决方案:

Field valueField = String.class.getDeclaredField("value");
field.setAccessible(true);

String str = "This is my String";
char[] charArr = (char[]) valueField.get(str);

答案 4 :(得分:2)

如果您的对象中有一些属性,并希望在那里进行更多格式化,那么使用LINQ,

var output = string.Join(" ", list.Select(t => t.Prop1 + " " + t.Prop2));

这将在对象的每个属性之间放置一个空格,并在每个对象之间放置一个空格。

答案 5 :(得分:1)

这样的事情:

    List<String> myStrings = new List<string>() { "string1", "string2", "string3" };
    StringBuilder concatenatedString = new StringBuilder();
    foreach (String myString in myStrings)
    {
        concatenatedString.Append(myString);
    }
    Console.WriteLine(concatenatedString.ToString());

答案 6 :(得分:0)

public static string ToString<T>(this IEnumerable<T> source, string delimiter)
{
    string d = String.Empty;
    var result = new StringBuilder();
    foreach(T item in source)
    {
        result.Append(d).Append(item.ToString());
        d = delimiter;
    }
    return result.ToString();
}

对于单个值的可选更好的字符串转换的重载:

public static string ToString<T>(this IEnumerable<T> source, string delimiter, Func<T, string> toString)
{
    string d = String.Empty;
    var result = new StringBuilder();
    foreach(T item in source)
    {
        result.Append(d).Append(toString(item));
        d = delimiter;
    }
    return result.ToString();
}

答案 7 :(得分:0)

答案 8 :(得分:0)

试试这个:

request.AllFacilityId = request.FacilityIdList.Aggregate((i, j) => i + "," + j);