คำตอบนี้แสดงการใช้งาน LINQ ( Aggregate
) ตามที่ร้องขอในคำถามและไม่ได้มีไว้สำหรับการใช้งานในชีวิตประจำวัน เพราะสิ่งนี้ไม่ได้ใช้StringBuilder
มันจะมีประสิทธิภาพที่น่ากลัวสำหรับลำดับที่ยาวมาก สำหรับรหัสปกติให้ใช้String.Join
ตามที่แสดงในคำตอบอื่น ๆ
ใช้ข้อความค้นหารวมเช่นนี้:
string[] words = { "one", "two", "three" };
var res = words.Aggregate(
"", // start with empty string to handle empty list case.
(current, next) => current + ", " + next);
Console.WriteLine(res);
ผลลัพธ์นี้:
, หนึ่งสองสาม
การรวมเป็นฟังก์ชันที่รับค่าและส่งคืนค่าสเกลาร์ ตัวอย่างจาก T-SQL ได้แก่ min, max และ sum ทั้ง VB และ C # ได้รับการสนับสนุนสำหรับการรวม ทั้ง VB และ C # รองรับการรวมเป็นวิธีการขยาย การใช้เครื่องหมายจุดจะเรียกใช้เมธอดบนวัตถุIEnumerable
จำไว้ว่าแบบสอบถามรวมจะดำเนินการทันที
ข้อมูลเพิ่มเติม - MSDN: การค้นหาแบบรวม
หากคุณต้องการAggregate
ใช้ตัวแปรการใช้ที่StringBuilder
เสนอในข้อคิดเห็นโดยCodeMonkeyKingซึ่งจะเกี่ยวกับรหัสเดียวกันกับปกติString.Join
รวมถึงประสิทธิภาพที่ดีสำหรับวัตถุจำนวนมาก:
var res = words.Aggregate(
new StringBuilder(),
(current, next) => current.Append(current.Length == 0? "" : ", ").Append(next))
.ToString();