创建类似javascript数组的c#数组
我是C#新手,想知道是否可以在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
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
作为参数