Point3d pt = new Point(10,20,0);
หมายถึง จุดพิกัด ที่มี ค่า X= 10 ค่า Y = 20 และค่า Z=0 เป็นต้น
แต่การใช้งานในหลาย กรณีเราอาจจะมีจุดเป็น ร้อยเป็นพัน การ ทำการ Sort ตามค่าเช่น ค่า X หรือ ค่า Y ก็จะเป็นเรื่องยุ่งยากพอสมควร ในกรณีนี้ ผมจะแนะนำการใช้ List /HashSetใน C# ซึ่งน่าจะง่ายกว่าวิธีการอื่นๆ
จาก Code
pts เป็น Array ของ จุดที่อาจจะมีเท่าไรก็ได้ เราจะใข้ xarr มาเป็นตัว Sort สำหรับค่า X
วิธีการก็คือว่า ใน List จะมีเครื่องมือ Sort ที่ใส่ Comparator ได้เอง
List<Point3d> xarr = new
List<Point3d>();
//Dictionary<double,
double> xarr = new Dictionary<double, double>();
for (int i = 0; i < pts.Count; i++)
{
xarr.Add(pts[i]);
}
Comparison<Point3d> cmpPt3 = delegate(Point3d p1, Point3d
p2)
{ return (p1.X.CompareTo(p2.X)); };
xarr.Sort(cmpPt3);
ด้วยวิธีการนี้ก็จะสามารถ Sort จุดพิกัดตามค่า X ได้อย่างไม่ยาก
นอกจากการใช้ List สามารถใช้
HashSet จะคล้าย กับ List แต่จะหา IntersectWith,UnionWith กับอีก HashSet ได้ และตัดตัวซ้ำให้
นอกจากการใช้ List สามารถใช้
HashSet จะคล้าย กับ List แต่จะหา IntersectWith,UnionWith กับอีก HashSet ได้ และตัดตัวซ้ำให้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น