มีฟังก์ชั่นใน C # เพื่อแปลงคอลเลกชันบางอย่างให้เป็นสตริงและแยกค่าด้วยตัวคั่นอย่างรวดเร็วหรือไม่?
ตัวอย่างเช่น:
List<string> names -> string names_together = "John, Anna, Monica"
มีฟังก์ชั่นใน C # เพื่อแปลงคอลเลกชันบางอย่างให้เป็นสตริงและแยกค่าด้วยตัวคั่นอย่างรวดเร็วหรือไม่?
ตัวอย่างเช่น:
List<string> names -> string names_together = "John, Anna, Monica"
คำตอบ:
String.Joinคุณสามารถใช้ ถ้าคุณมีList<string>แล้วคุณสามารถโทรToArrayครั้งแรก:
List<string> names = new List<string>() { "John", "Anna", "Monica" };
var result = String.Join(", ", names.ToArray());
ใน .NET 4 คุณไม่จำเป็นต้องใช้ToArrayอีกต่อไปเนื่องจากมีการเกินพิกัดของที่ใช้เวลา  String.JoinIEnumerable<string>
ผล:
John, Anna, Monica
คุณสามารถทำได้ด้วย linq ถ้าคุณต้องการ
var names = new List<string>() { "John", "Anna", "Monica" };
var joinedNames = names.Aggregate((a, b) => a + ", " + b);
แม้ว่าฉันจะชอบไวยากรณ์ที่ไม่ใช่ linq ในคำตอบของ Quartermeister และฉันคิดว่าAggregateอาจทำงานได้ช้าลง
Aggregateดีกว่าสำหรับการดำเนินการทางคณิตศาสตร์ ด้วยสตริงการดำเนินการนี้จะคล้ายกับfor eachไอเอ็นจีและเพียงแค่ผนวกกับสตริงซึ่งช้าไม่มีประสิทธิภาพมากเพราะคุณกำลังสร้างสตริงใหม่สำหรับแต่ละรายการที่มีอยู่ในรายการ