【问题标题】:How to add a new item to this array?如何向该数组添加新项目?
【发布时间】:2018-01-18 04:23:43
【问题描述】:

我有课 -

public class PropertyModel
{
    public string Name { get; set; }
    public string Value { get; set; }
}

这是我的请求模型中的数组

public PropertyModel[] Properties { get; set; }

此数组由用户填充,有时也可以为空。

不管它是否被填充 - 我想添加一个名称/值对 - ["Origin", "WEB"] 总是到这个数组。

我该如何做这个数组加法?我是否应该先将其转换为 List,添加然后再将其转换回数组?

【问题讨论】:

  • 所以您想在以后添加项目,并且您最初不知道集合的长度,那么为什么要坚持使用数组?为什么不List<PropertyModel>

标签: c# .net arrays c#-4.0 .net-4.5


【解决方案1】:

这次您应该使用List<PropertyModel> 代替PropertyModel[]。由于您不知道集合的最终大小,因此用户可能会在以后的某个时间点将新项目添加到集合中。所以我建议你这样定义属性:

private List<PropertyModel> _Properties = new List<PropertyModel>();
public List<PropertyModel> MyProperty
{
   get { return _Properties; }
   set { myVar = _Properties; }
}

当您遇到同样的困惑时,请记住以下几点:

  • 如果您知道集合的最终大小,您可以 使用 T[] 或列表。
  • 如果您不知道决赛 大小(集合大小不同),使用List。

【讨论】:

    【解决方案2】:

    有很多方法可以实现这一点,但如果你只想添加一个项目,那么试试这个代码。

     PropertyModel[] arr = {};
     var toAdd = new PropertyModel() { Name = "Origin", Value = "WEB" };
     arr = arr.Concat(new PropertyModel[] { toAdd }).ToArray();
    

    【讨论】:

      【解决方案3】:

      您可以使用 List 代替 PropertyModel[] 数组。使用 List 您可以像这样使您的代码更简单:

      public static List<PropertyModel> GetAll()
      {
          List<PropertyModel> myList= new List<PropertyModel>();
          myList.Add(new PropertyModel(){Name = "Anna", Value = "500$"});
          myList.Add(new PropertyModel(){Name = "Michellen", Value = "520$"});
      
          return myList;
      }
      

      你可以使用List的.ToArray()方法

      public PropertyModel[] Properties { get; set; }
      

      这里是代码

      //to use the function
          public static void Main()
          {
             Properties = GetAll().ToArray();
      
          }
      

      【讨论】:

        【解决方案4】:

        尝试使用 ArrayList :https://msdn.microsoft.com/en-us/library/system.collections.arraylist(v=vs.110).aspx

        添加和使用对象更容易,当您需要数组时,可以调用 .ToArray() 方法。

        【讨论】:

        • 不要使用ArrayList。到目前为止,它已被弃用 10 多年。使用通用List&lt;T&gt;
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-09
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多