You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按索引移除矩形数组中高度为0的元素?

移除矩形数组中高度为0的元素

因为数组本身是固定长度的,没法直接删除元素,只能通过生成新数组并替换原变量的方式实现需求——这样既不用改成List<>,也能让所有引用该数组变量的地方拿到过滤后的结果。下面给两种可行的实现方式:

方法一:用LINQ快速筛选(最简洁)

假设你的矩形类是自带的System.Drawing.Rectangle或者自定义的、包含Height属性的类,直接用LINQ的Where方法过滤即可:

// 原矩形数组,包含10个元素(2个高度为0)
Rectangle[] rectArray = ...;

// 筛选出高度不为0的元素,生成新数组替换原变量
rectArray = rectArray.Where(rect => rect.Height != 0).ToArray();
  • Where(rect => rect.Height != 0)会遍历原数组,只保留符合条件的元素
  • ToArray()把筛选结果转回矩形数组,替换原变量后,所有引用该变量的代码都会使用新的过滤后数组

方法二:手动遍历筛选(不依赖LINQ)

如果项目不能用LINQ,就手动统计有效元素数量再生成新数组:

Rectangle[] rectArray = ...;

// 第一步:统计高度不为0的元素个数
int validCount = 0;
foreach (var rect in rectArray)
{
    if (rect.Height != 0) validCount++;
}

// 第二步:创建新数组并复制有效元素
Rectangle[] newRects = new Rectangle[validCount];
int currentIndex = 0;
foreach (var rect in rectArray)
{
    if (rect.Height != 0)
    {
        newRects[currentIndex++] = rect;
    }
}

// 替换原数组变量
rectArray = newRects;

内容的提问来源于stack exchange,提问作者Alisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:01:05