首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#初始化对象中添加或AddRange到列表

在C#初始化对象中添加或AddRange到列表
EN

Stack Overflow用户
提问于 2020-06-16 20:35:08
回答 2查看 838关注 0票数 1

正如在https://docs.microsoft.com/de-de/visualstudio/code-quality/ca2227?view=vs-2019中所解释的,我有一个对象,其只读列表如下所示:

代码语言:javascript
复制
public class MyClass {
  public int id { get; set; }
  public List<string> stringList { get; } = new List<string>;
}

但是如何通过向stringList添加数据来初始化MyClass

代码语言:javascript
复制
MyClass test = new MyClass(){
  id = 1,
  stringList = ???
}
EN

回答 2

Stack Overflow用户

发布于 2020-06-16 20:39:47

您可以对collection initializers使用不太明显的语法

代码语言:javascript
复制
var x = new MyClass
{
    id = 1,
    stringList = {"as", "ddsd"} // will ADD "as", "ddsd" to stringList 
};
Console.WriteLine(string.Join(", ", x.stringList)); // prints as, ddsd

处理只读属性(直到init only properties and records发布C# 9之前)的常用方法是在构造函数中传递初始化值。

票数 4
EN

Stack Overflow用户

发布于 2020-06-16 20:39:58

您可以在构造函数中将stringList作为参数传递,并将属性分配给该参数:

代码语言:javascript
复制
public class MyClass {
    public int id { get; set; }
    public List<string> stringList { get; } = new List<string>();

    public MyClass(List<string> stringList) {
        this.stringList = stringList;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62408635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档