มีฟังก์ชั่นใน 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.Join
IEnumerable<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
ไอเอ็นจีและเพียงแค่ผนวกกับสตริงซึ่งช้าไม่มีประสิทธิภาพมากเพราะคุณกำลังสร้างสตริงใหม่สำหรับแต่ละรายการที่มีอยู่ในรายการ