我的列表框中有一个项目; 我想把它转换为PointF,以便我可以将它与pointF列表进行比较。
例) var selection = listBox3.SelectedItem; //喜欢" {X = 18,Y = 48.10001}"
PointF p1 =(PointF)选择;
//现在当选择该项目并将其转换为浮点数时,我想搜索并在名为optFlowPoints的列表中找到它以查看该点是否存在
PointF drawPointEst = optFlowPonits.Find(p => p.Equals(selection));
所以有两个问题:
答案 0 :(得分:1)
如何将selectedItem转换为PointF:
我认为你可以改变你填写清单的方式。你试过listBox3.Items.AddRange(temp.Cast<object>().ToArray());
吗?我认为这应该可行,因为ListBox为您调用ToString。 (参见http://msdn.microsoft.com/en-us/library/z018s5az.aspx)然后,由于ListBox现在包含PointF对象而不是字符串,因此InvalidCastException应该消失。
如何编写lambda表达式来查找匹配项:
PointF drawPointEst = optFlowPoints.Find(p => p == selection);
http://msdn.microsoft.com/en-us/library/system.drawing.pointf.op_equality.aspx