我定义了一个结构如下
public struct Point3D_struct
{
public float x;
public float y;
public float z;
public int ID;
public Point3D_struct(float xx, float yy, float zz, int id)
{
this.x = xx;
this.y = yy;
this.z = zz;
this.ID = id;
}
}
然后建立list数组
public List<Point3D_struct> PCptsList = new List<Point3D_struct>();
我将一系列的点坐标存入数组后,怎样才可以快速得到指定id(id具有唯一性)的坐标值呢?
public struct Point3D_struct
{
public float x;
public float y;
public float z;
public int ID;
public Point3D_struct(float xx, float yy, float zz, int id)
{
this.x = xx;
this.y = yy;
this.z = zz;
this.ID = id;
}
}
然后建立list数组
public List<Point3D_struct> PCptsList = new List<Point3D_struct>();
我将一系列的点坐标存入数组后,怎样才可以快速得到指定id(id具有唯一性)的坐标值呢?
...
Point3D_struct find = PCptsList.Where(x => x.id == findid).First();
public List<Point3D_struct> PCptsList = new List<Point3D_struct>();
...Type type = typeof(Point3D_struct);
foreach (FieldInfo mi in type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
{
//根据你要获取的值,这里假如为1的话
if(mi.ID==1)
{
//输出1对应的点的xyz坐标值
Response.Write(mi.x+","+mi.y+","+mi.z);
}
}
{
//存在元素
//对应元素
//PCptsList[index]
}
else
{
//不存在
}
Point3D_struct ps = list.Find(delegate(Point3D_struct p) { return p.ID == 1; });//找到ID为1的元素
int index = PCptsList.FindIndex(delegate(Point3D_struct p) { return p.ID == 1; });
if(index>-1)
{
//存在元素
//对应元素
//PCptsList[index]
}
else
{
//不存在
}
以哈希表为例:Hashtable myHT = new Hashtable();
Point3D_struct pt=new Point3D_struct(5,6,7,0);
myHT.Add(id ,pt);
.....................Point3D_struct temp=(Point3D_struct)myHT[id];//通过id便可以获取对于的pt