如何在C#中的一个字符串中连接列表的所有内容?
答案 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);