【问题标题】:How to add/append some objects into an object array [duplicate]如何将一些对象添加/附加到对象数组中[重复]
【发布时间】:2019-06-03 02:31:43
【问题描述】:

如何使用 C# 将一些对象添加/追加到对象数组中,我可以添加静态对象但我不知道如何使用动态添加对象。
请帮我一个忙,给我一点线索来处理这个问题,谢谢

   object dataSource = new object[] {
      new { a1 = "111",    a11 = "Simpson" },
      new { a1 = "Marge ", a11 = "Simpson" },
      new { a1 = "Bart",   a11 = "Simpson" },
      new { a1 = "Lisa",   a11 = "Simpson" },
      new { a1 = "Maggie", a11 = "Simpson" },
      ...............
      };

reference sample code

【问题讨论】:

  • 您似乎也遵循 JavaScript 风格。我强烈建议不要这样做。 C# 是一种静态类型语言,您应该利用它。使用字段a1a11 创建类SomeClass,将dataSource 声明为SomeClass[](或List<SomeClass>,如果此方法正确)。
  • @dyukha 我添加了一个参考网址
  • dyukha 的意思是,你不应该使用匿名类型,如果你真的不需要它们。而是使用编译器保存强类型(例如特定类)。在我的副本中回答了其他所有问题。
  • 因此,您只在非常简单的场景中使用匿名类型。所有复杂的东西都应该有一个强类型。
  • @WillieCheng 没有问题:对象数组或匿名类型的数组,特别是因为不需要。重复的答案同样适用于所有类型。

标签: c# arrays .net linq


【解决方案1】:

您可以使用Array.Resize(ref array, int size) 调整array 的大小,但可能难以管理。一个简单的选择是使用将为您管理集合的列表,当您完成它时,将其转换为array。示例:

// define a list
var dataSourceList = new List<object>();

// add items
dataSourceList.Add(new { a1 = "111", a11 = "Simpson" });
dataSourceList.Add(new { a1 = "Marge ", a11 = "Simpson" });
dataSourceList.Add(new { a1 = "Bart", a11 = "Simpson" });
dataSourceList.Add(new { a1 = "Lisa", a11 = "Simpson" });
dataSourceList.Add(new { a1 = "Maggie", a11 = "Simpson" });
...

// convert it to array
var dataSource = dataSourceList.ToArray();

【讨论】:

  • 感谢您的推荐,如果我想动态添加itmes(a1,a11,a111.....)怎么办,谢谢
  • 列表中有一个名为AddRange 的方法,它接受要添加到列表中的集合,但我不确定它是否可以在params sintaxe 中接受。无论如何,你可以实现一个扩展方法来做到这一点。
猜你喜欢
  • 2013-01-03
  • 2014-06-04
  • 2022-01-05
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 2020-08-15
相关资源
最近更新 更多