如何将新项添加到此数组?

时间:2018-01-18 04:23:43

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

我有一个班级 -

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

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

public PropertyModel[] Properties { get; set; }

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

无论是否填充 - 我想在此数组中添加名称/值对 - ["Origin", "WEB"]

如何添加此阵列?我应该首先将其转换为List,然后添加然后将其转换回数组吗?

4 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

有很多方法可以实现这一目标,但如果您只想添加一个项目,请尝试使用此代码。

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

答案 2 :(得分:0)

您可以使用列表,而不是使用 PropertyModel [] 数组。使用列表您可以使代码更容易:

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();

    }

答案 3 :(得分:-1)

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

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