我有一个字符串列表
new List<string> { "One", "Two", "Three", "Four", "Five", "Six" }
,我想拥有一个具有精确此内容的字符串(包括双引号(
"One", "Two", "Three", "Four", "Five", "Six"
因为将写一个将为数组的文本文件[] = {my_string}
我尝试了这一点,没有成功
var joinedNames = fields.Aggregate((a, b) => """ + a + ", " + b + """);
Little Linq帮助将非常感谢:(
var joinedNames = """ + string.Join("", "", fields) + """;
您可以通过LINQ和string.Join
var joinedNames = string.Join(", ", fields.Select(f => """ + f + """));
使用 string.Join
:
var myList = new List<string> { "One", "Two", "Three", "Four", "Five", "Six" };
var joined = string.Join(", ", myList.Select(item => """ + item + """));
var list = new List<string> { "One", "Two", "Three", "Four", "Five", "Six" };
joinedNames = """ + string.Join("", "", list) + """;
List<string>
只是IEnumerable接口的实现,该接口本身是包装器的包装器,并继承了string[]
的方法,它在其中具有string.join(...)
方法,它实际上就是您实际上想做的。
我使用您的原始数据进行了测试,但是我在集合中添加了 null 。数据的所有4个版本(列表,数组和每个版本的iEnumerable(按预期执行了JOIN方法,最终以完全相同的字符串。
List<string> list = new List<string> { "One", "Two", "Three", null, "Four", "Five", "Six" };
string JoinedList = """ + string.Join("", "", list) + """;
string[] array = new string[] { "One", "Two", "Three", null, "Four", "Five", "Six" };
string JoinedArray = """ + string.Join("", "", array) + """;
IEnumerable<string> ieList = new List<string> { "One", "Two", "Three", null, "Four", "Five", "Six" };
string ieListString = """ + string.Join("", "", ieList) + """;
IEnumerable<string> ieArray = new string[] { "One", "Two", "Three", null, "Four", "Five", "Six" };
string ieArrayString = """ + string.Join("", "", ieArray) + """;
Console.WriteLine("Joined List : " + JoinedList);
Console.WriteLine("Joined Array : " + JoinedArray);
Console.WriteLine("Joined ieList : " + ieListString);
Console.WriteLine("Joined ieArray : " + ieArrayString);
// results in
// Joined List : "One", "Two", "Three", "", "Four", "Five", "Six"
// Joined Array : "One", "Two", "Three", "", "Four", "Five", "Six"
// Joined ieList : "One", "Two", "Three", "", "Four", "Five", "Six"
// Joined ieArray : "One", "Two", "Three", "", "Four", "Five", "Six"
在您提出的上下文中,任何数据对象既没有优势也不是不利的。如果我们正在寻找性能(但是很小(希望将其保留为字符串[],但是如果我们需要最大的功能,则需要使用列表。iEnumerable确实有一些添加的方法(例如顺序(,但没有Remove
函数(要捕获该零值,我插入了(