【问题标题】:List.AddRange inline declarationList.AddRange 内联声明
【发布时间】:2010-03-26 06:33:59
【问题描述】:

这似乎是一个简单的问题,但对我来说不是,搜索也一无所获。到目前为止,我所做的唯一 .net 编程是使用 Delphi Prism。使用 Prism,我可以执行以下操作:

var l := new List<String>(['A','B','C']);

var l := new List<String>;
l.AddRange(['A','B','C'];

但是我可以在 C# 中做类似的事情吗,还是我必须这样做:

var a = new String[] {"A","B","C"};
var l = new List<String>(a);

【问题讨论】:

    标签: c# .net delphi delphi-prism oxygene


    【解决方案1】:
     var l=new List<String>() {"A","B","C"};  
    

    这会起作用

    【讨论】:

      【解决方案2】:

      集合初始化器:

      var list = new List<string>
      {
          "A",
          "B",
          "C"
      };
      

      或正确的ctor(与集合初始化器混合):

      var list = new List<string>(new [] { "A", "B", "C" });
      
      • msdn 获取 ctor 信息
      • msdn 用于集合初始化器

      【讨论】:

        【解决方案3】:

        您可以使用Collection Initializers 来达到预期的效果。

        【讨论】:

          【解决方案4】:

          如上所述,使用集合初始化器。此外,如果您希望从 string[] 转换为 List ,您可以使用 System.Linq 命名空间中的 ToList() 扩展方法,如下所示:

          string[] s = { "3", "4", "4"};
          List<string> z = s.ToList();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-09-21
            • 2018-06-29
            • 1970-01-01
            • 1970-01-01
            • 2016-06-09
            • 1970-01-01
            • 2022-07-07
            相关资源
            最近更新 更多