日期:2014-05-18 浏览次数:21021 次
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); } }
------解决方案--------------------
int index = PCptsList.FindIndex(s => s.ID == 0);
if(index>-1)
{
//存在元素
//对应元素
//PCptsList[index]
}
else
{
//不存在
}
------解决方案--------------------
因为是struct ,不通过标记位是很难确定查找的元素是否在已知集合中,
FirstOrDefault,SingleOrDefault,Find etc..
异常的方式更不用考虑
First,Single etc..
------解决方案--------------------
你用vs2005?
------解决方案--------------------
List<T>本来就有Find方法:
List<Point3D_struct> list = new List<Point3D_struct>(); Point3D_struct ps = list.Find(delegate(Point3D_struct p) { return p.ID == 1; });//找到ID为1的元素
------解决方案--------------------
.net framework 2.0 下
改下oj的
//找到ID为1的元素的下标
int index = PCptsList.FindIndex(delegate(Point3D_struct p) { return p.ID == 1; });
if(index>-1)
{
//存在元素
//对应元素
//PCptsList[index]
}
else
{
//不存在
}
------解决方案--------------------
楼主,NET有现成的东西:HashTable 、SortedList 都可以:
以哈希表为例:
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