创建类似javascript数组的c#数组

创建类似javascript数组的c#数组,javascript,c#,arrays,Javascript,C#,Arrays,我是C#新手,想知道是否可以在C#中创建一个数组,如下所示: rates[0]['logic_id'] = 12; rates[0]['line_id'] = "" rates[0]['rate'] = rateVal; rates[0]['changed'] = isChanged; rates[1]['logic_id'] = 13; rates[1]['line_id'] = "" rates[1]['rate'] = secvalue; rates[1]['changed'] = is

我是C#新手,想知道是否可以在C#中创建一个数组,如下所示:

rates[0]['logic_id'] = 12;
rates[0]['line_id'] = ""
rates[0]['rate'] = rateVal;
rates[0]['changed'] = isChanged;

rates[1]['logic_id'] = 13;
rates[1]['line_id'] = ""
rates[1]['rate'] = secvalue;
rates[1]['changed'] = isChanged;
我可以用这些值在
C#
中创建
rates
数组吗

编辑:


我的目标是将
rates
数组发送到使用PHP运行的特定Web API服务。它们只接受具有上述结构的数组。这就是我想要实现这一目标的原因。

您可以使用数组来解决它,但这种方法有些过时

我的建议是您应该使用
列表

使现代化 OP说:

我的目标是将速率数组发送到特定的Web API服务,该服务是 使用PHP运行。它们只接受具有上述属性的数组 结构这就是为什么我想实现这一目标

没问题。如果序列化该词典列表,则可以生成一个JSON,其中将包含一个对象数组:

[{ "rate": 2 }, { "rate": 338 }]

实际上,.NET
列表
被序列化为JSON数组,
字典
被序列化为JSON对象,或者换句话说,被序列化为关联数组。

您可以使用数组来解决它,但这种方法有些过时

我的建议是您应该使用
列表

使现代化 OP说:

我的目标是将速率数组发送到特定的Web API服务,该服务是 使用PHP运行。它们只接受具有上述属性的数组 结构这就是为什么我想实现这一目标

没问题。如果序列化该词典列表,则可以生成一个JSON,其中将包含一个对象数组:

[{ "rate": 2 }, { "rate": 338 }]

实际上,.NET
List
被序列化为一个JSON数组,
Dictionary
被序列化为一个JSON对象,或者换句话说,被序列化为一个关联数组。

这里最好的方法是创建一个
Rate
类,该类保存在
List()


这里最好的方法是创建一个
Rate
类,该类保存在
List()


这取决于你的具体需求,也许你只是想要一个对象列表

首先创建一个类:

class Rate
{
    public int LoginId { get; set; }
    public int? LineId { get; set; }
    public decimal RateValue { get; set; }
    public bool IsChanged { get; set; }
}
然后,在您想要的任何方法中,只需使用:

List<Rate> Rates = new List<Rate>();
Rates.Add(new Rate() {LoginId = 1, LineId = null, RateValue = Rateval, IsChanged = false});
Rates.Add(new Rate() {LoginId = 13, LineId = null, RateValue = SecVal, IsChanged = false});
List Rates=新列表();
添加(新速率(){LoginId=1,LineId=null,RateValue=Rateval,IsChanged=false});
Add(new Rate(){LoginId=13,LineId=null,RateValue=SecVal,IsChanged=false});
编辑


我为这个糟糕的答案道歉,我编辑了它来解释错误。这取决于你的具体需求,也许你只是想要一个对象列表

public struct Rate
        {
            public int LoginId ;
            public int LineId ;
            public double RateValue ;
            public bool IsChanged;
        }

        public static void makelist()
        {
             List<Rate> Rates = new List<Rate>();
             Rates.Add(new Rate() {LoginId = 1, LineId = null, RateValue = Rateval,IsChanged = false});
        }
首先创建一个类:

class Rate
{
    public int LoginId { get; set; }
    public int? LineId { get; set; }
    public decimal RateValue { get; set; }
    public bool IsChanged { get; set; }
}
然后,在您想要的任何方法中,只需使用:

List<Rate> Rates = new List<Rate>();
Rates.Add(new Rate() {LoginId = 1, LineId = null, RateValue = Rateval, IsChanged = false});
Rates.Add(new Rate() {LoginId = 13, LineId = null, RateValue = SecVal, IsChanged = false});
List Rates=新列表();
添加(新速率(){LoginId=1,LineId=null,RateValue=Rateval,IsChanged=false});
Add(new Rate(){LoginId=13,LineId=null,RateValue=SecVal,IsChanged=false});
编辑

我为这个糟糕的答案道歉,我编辑了它来解释错误

公共结构速率
public struct Rate
        {
            public int LoginId ;
            public int LineId ;
            public double RateValue ;
            public bool IsChanged;
        }

        public static void makelist()
        {
             List<Rate> Rates = new List<Rate>();
             Rates.Add(new Rate() {LoginId = 1, LineId = null, RateValue = Rateval,IsChanged = false});
        }
{ 公共国际后勤; 公共int LineId; 公共双重价值; 公共场所被改变; } 公共静态void生成列表() { 列表费率=新列表(); 添加(新速率(){LoginId=1,LineId=null,RateValue=Rateval,IsChanged=false}); }
此方法将只保存数据,而不会像类那样保存方法

对于结构中定义的数据类型,内存使用率保持较低,因为它的唯一用途是存储数据。这是变量和类之间的中间位置。

public struct Rate
{
公共国际后勤;
公共int LineId;
公共双重价值;
公共场所被改变;
}
公共静态void生成列表()
{
列表费率=新列表();
添加(新速率(){LoginId=1,LineId=null,RateValue=Rateval,IsChanged=false});
}
此方法将只保存数据,而不会像类那样保存方法


对于结构中定义的数据类型,内存使用率保持较低,因为它的唯一用途是存储数据。这是变量和类之间的中间位置。

对象表示法在C#中不存在。创建适当的对象有什么不好的地方?难道你不想让它强类型化并创建一个Rate对象吗?C#中的类型存在是有原因的……这似乎是一个错误。您想创建一个数组来解决一些问题,但是您没有描述这个问题。除非你真的用SO来理解集合(数组、可枚举项等),否则如果我们理解你认为数组能解决什么问题,那对每个人都是最有利的。@Oraz你已经有了下面的答案……这个对象符号在C#中是不存在的。创建适当的对象有什么不好的地方?难道你不想让它强类型化并创建一个Rate对象吗?C#中的类型存在是有原因的……这似乎是一个错误。您想创建一个数组来解决一些问题,但是您没有描述这个问题。除非您真的使用SO来理解集合(数组、可枚举项等),否则如果我们理解您认为数组可以解决的问题,这将是每个人的最大利益。@Oraz您已经在下面给出了答案…
+1
-您可能也应该注意如何访问这些值。@Dave Zych如果将“rates”作为列表发送到Web API,它们如何区分这些值。例如,分别获取LogicID和LineID?@Oraz要将其发送到API,您必须以某种方式对其进行序列化,即将其转换为XML(如果API接受XML)或JSON(如果API接受JSON)。JSON更常见,您可以使用Newtonsoft.JSON库将列表转换为JSON数组。代码类似于字符串jsonForApi=json.Serialize(rates)@DaveZych我已经添加了对
Newtonsof.Json
库的引用,但是我找不到任何
Json
Serialize
方法将
List
作为参数