我正在整理一个小小的C#项目 - 我正在用JavaScript编写我用JavaScript编写的东西。
我的项目的一部分需要一个包含混合内容的数组。在JavaScript中我只是启动数组:
Log: []
然后使用push:
Log.push(logEntry);
logEntry是:
string, string, string, int, int, int
整体也可能是空的。
这样做的目的是在JSON编码之前存储数据并将其发送到另一台服务器上的Web API。
有人能指出我在C#中做正确的方向,因为我发现的所有答案似乎都只想存储相同类型的数据。
提前致谢,
贝。
答案 0 :(得分:5)
使用List<object>
(因为所有内容都是从C#中的对象派生的):
var list = new List<object>();
list.Add(123);
list.Add("Hello World");
同样dynamic
可能适合您(以及您的javascript背景)
var list = new List<dynamic>();
list.Add(123);
list.Add(new
{
Name = "Lorem Ipsum"
});
如果您不想使用dynamic
,您真的需要知道自己在做什么。请在开始之前阅读此MSDN article。
C#是一种强类型且非常可靠的编程语言。它非常灵活,非常适合使用面向对象和功能范例构建应用程序。您想要做的事情可能是javascript可以接受的,但在C#上看起来很糟糕。我的建议是:使用面向对象的编程并尝试为您的问题构建模型。永远不要像你试过的那样混合类型。一个列表用于单个数据类型。您想深入描述您的问题,以便我们建议您提供更好的解决方案吗?
答案 1 :(得分:1)
ArrayList
类。List<Object>
ArrayList
类旨在保存对象集合。对象可以是不同的类型。但是,它并不总能提供最佳性能。
来自MSDN
ArrayList类旨在保存异构集合 对象。但是,它并不总能提供最佳性能。 相反,我们建议如下:
对于异构的对象集合,请使用List(in C#)或List(Of Object)(在Visual Basic中)类型。
对于同类的对象集合,请使用List类。