2013-03-04 63 views
1

你好我正在使用Microsoft.VisualBasic.PowerPacks名称空间在窗体上创建形状。我使用了一个数组来存储所有的对象,以便我可以生成新的形状并根据给定的场景修改对象集合的属性。查找包含对象的数组中最低的索引?

我试图执行一个查找数组,找到包含椭圆形的最低索引。在互联网上拖了很长一段时间后,我只发现接受固定值的语句,因为数组中的每个位置都包含相同的值,我不能这样做。

我正在寻找下面的声明中的一些内容。在哪里我可以找到不是空的第一个条目或包含“Microsoft.VisualBasic.Powerpacks.Ovalshape”对象不是类型。谢谢。

// ** Object declaration 
Microsoft.VisualBasic.PowerPacks.OvalShape shape = new Microsoft.VisualBasic.PowerPacks.OvalShape();  
Microsoft.VisualBasic.PowerPacks.OvalShape[] shapes; 
**// 


    int myIndex = Array.IndexOf(shapes, != null); 

回答

4

只需使用:

Array.FindIndex(shapes, s => s != null) 
+0

+1我从来不知道这存在。 – 2013-03-04 21:36:06

+0

感谢作品像一个魅力,什么是参数s? – Machiinate 2013-03-04 21:42:00

+0

@NathanHotchkin有一个匿名函数接受'Microsoft.VisualBasic.PowerPacks.OvalShape'类型的参数's'并返回'bool',即's'是否与'null'不同。这就像一个命名的方法'静态布尔MethodWithName(OvalShape s){return s!= null; }'。匿名函数(或命名方法)的签名和返回类型与'FindIndex'方法所需的'谓词'委托类型相匹配。包含箭头'=>'的表达式称为_lambda表达式__。 – 2013-03-04 21:51:02

相关问题