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

C#中如何不使用循环初始化对象数组?

无需循环初始化A类型数组的实现方案

当然可以,你不需要手动编写for或foreach循环就能完成这个数组的初始化,以下是几种可行的方式:

  • 使用LINQ的Enumerable.Range + Select
    这是动态n场景下最常用的方案,借助LINQ的序列生成和映射能力实现:

    using System.Linq; // 需要引用这个命名空间
    
    int n = 10;
    A[] arrayA = Enumerable.Range(0, n)
                           .Select(i => new A($"item{i}"))
                           .ToArray();
    

    原理:Enumerable.Range(0, n)生成从0到n-1的整数序列,Select把每个整数转换成对应的A实例,最后ToArray()将序列转为数组。

  • 固定n时使用数组初始化器
    如果n是已知的固定值(比如示例中的10),可以直接写出数组的所有元素:

    A[] arrayA = new A[]
    {
        new A("item0"),
        new A("item1"),
        new A("item2"),
        new A("item3"),
        new A("item4"),
        new A("item5"),
        new A("item6"),
        new A("item7"),
        new A("item8"),
        new A("item9")
    };
    

    这种方式完全没有循环,但只适合n固定且数值不大的场景,动态n时不适用。

  • 使用Array.ConvertAll
    借助Array.ConvertAll方法将整数数组直接转换为A类型数组:

    using System.Linq;
    
    int n = 10;
    A[] arrayA = Array.ConvertAll(Enumerable.Range(0, n).ToArray(), i => new A($"item{i}"));
    

    本质和LINQ方案类似,只是转换方式更直接。

需要注意的是:除了固定n的数组初始化器,其他方案内部其实依然存在循环逻辑,但这些循环是.NET框架底层实现的,不需要你手动编写。如果是追求完全无任何循环的实现,只有固定n的场景才能做到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:05:07