我得到了一个neighbor
数组(由Tile对象组成),该数组的长度始终为4,无论是否填充了所有元素。如果该元素/位置不为null,我想浏览该数组并更改Tile中包含的PB的颜色。我可以使用以下代码通过标准的if neighbors[i] = null
检查来做到这一点:
for (int i = 0; i < Neighbors.Count(); i++)
{
if (Neighbors[i] != null)
Neighbors[i].TilePB.Backcolor = Color.Red;
else
continue; // just put that here for some more context.
}
但是我想知道是否可以像使用?一样在一行中做到这一点?操作员。我曾尝试使用三元运算符,但无法continue
使用一个(我尝试过的三元语句:Neighbors[i] != null ? /* do something */ : continue
,为什么它不起作用:Why break cannot be used with ternary operator?)。 / p>
还有另一种方法来检查数组的元素是否为空,仅使用一行(最好不使用hack)?
答案 0 :(得分:4)
您可以为此使用linq:
foreach (var item in Neighbors.Where(n => n != null))
{
// do something
}
答案 1 :(得分:2)
怎么样
neighbors.Where(x => x != null).ToList().ForEach(x => DoSomething(x));
答案 2 :(得分:2)
如果您需要操作的返回值,请使用select
var result = neighbors.Where(x => x != null).Select(x => MyAction(x)).ToList();