วันนี้ขอนำเสนอทิปเล็กๆ เกี่ยวกับการแยกคำ หรือ Split ข้อมูล String ออกมาเป็น List โดยใช้ความสามารถของ LINQ นะครับ ซึ่งสามารทำได้หลายวิธีมาก วันนี้ขอยกตัวอย่างการ Split คำ โดยใช้ตัวอย่างนี้นะครับ
สมมติว่าผมมีข้อมูล String ในรูปแบบนี้ "00001_CompanyA_5000,00002_CompanyB_2000,00003_CompanyC_7000" โดยใน string นี้จะประกอบด้วย CompanyID , CompanyName , Price ซึ่งมี '_' เป็นตัวคั่น และข้อมูลแต่ละชุดมี ',' เป็นตัวคั่น โดยทั่วไปอาจจะทำได้โดยการวน Loop แล้ว Split String เก็บที่ละฟิลด์ ก็จะได้ผลลัพธ์ที่ต้องการเหมือนกัน แต่ถ้าใช้ LINQ เราสามารถทำได้โดยใช้ Code ดังนี้
string companydata = "00001_CompanyA_5000,00002_CompanyB_2000,00003_CompanyC_7000";
var companylist = companydata.Split(',')
.Select(s => s.Split('_'))
.Select(a => new
{
CompanyID = a[0].ToString()
, CompanyName = a[1].ToString()
, Price = a[2].ToString()
});
ที่นึี้ลองมาทดสอบผลการทำงา่นกันนะครับว่าสามารถทำงานได้จริงหรืิเปล่า
จะสังเกตว่าเมื่อใช้ฟังก์ชั่น Split ของ LINQ เราสามารถทำการแยก String ได้โดยใชัคำสั่งเพี้ยงแค่บรรทัดเดียว

ไม่มีความคิดเห็น:
แสดงความคิดเห็น