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

同一文件中如何从Program主类向testing类传递List<string>集合?

这问题其实很常见,咱们有好几种简单的方式实现List的传递,我给你列几个常用的方案:

方案1:通过构造函数传递

创建testing实例的时候直接把List传进去,在构造函数里完成赋值,这是最常用的初始化方式:

class Program {
    static void Main(string[] args) {
        List<string> list = new List<string>();
        list.Add("Test1");
        // 创建实例时直接传入目标List
        testing client = new testing(list);
    }
}

public class testing {
    List<string> newList = new List<string>();

    // 定义接收List的构造函数
    public testing(List<string> inputList) {
        // 如果你不想两个List共享同一块内存(避免一方修改影响另一方),用AddRange
        newList.AddRange(inputList);
        // 要是允许共享集合,直接赋值也行:newList = inputList;
    }
}

方案2:通过公共属性赋值

给testing类加一个可访问的属性,在实例化后直接赋值,适合需要延迟传递或者后续修改的场景:

class Program {
    static void Main(string[] args) {
        List<string> list = new List<string>();
        list.Add("Test1");
        testing client = new testing();
        // 直接给公共属性赋值
        client.NewList = list;
        // 同样,想独立集合的话用AddRange:client.NewList.AddRange(list);
    }
}

public class testing {
    // 定义公共属性,初始化空List
    public List<string> NewList { get; set; } = new List<string>();
}

方案3:通过方法传递

给testing类写一个专门的方法来接收List,适合需要在传递前做额外处理(比如清空原有数据、验证输入)的情况:

class Program {
    static void Main(string[] args) {
        List<string> list = new List<string>();
        list.Add("Test1");
        testing client = new testing();
        // 调用方法传入List
        client.LoadList(list);
    }
}

public class testing {
    List<string> newList = new List<string>();

    public void LoadList(List<string> inputList) {
        newList.Clear(); // 清空原有内容(可选操作)
        newList.AddRange(inputList);
    }
}

小提醒:如果是多线程场景,要注意集合的线程安全问题,单线程环境用上面的方案就完全够用啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:14:51