[英]store array in data contract
我有一个数据合同,定义如下:
[DataContract]
public class DemoSearchList : ReturnValuesBase
{
[DataMember]
public string SessionId { get; set; }
[DataMember]
public string[] StartDate { get; set; }
[DataMember]
public string[] EndDate { get; set; }
[DataMember]
public string ProductID { get; set; }
}
如您所见,StartDate和Enddate是字符串数组。 我想发送这些响应的数组。
for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
{
DemoSearchList.StartDate[i] = Convert.ToString(DS.Tables[0].Rows[i][0]);
DemoSearchList.EndDate[i] = Convert.ToString(DS.Tables[0].Rows[i][1]);
}
DS是数据集。 但是我得到一个错误,因为索引超出范围。 任何人都可以请帮助,如果需要声明并使用其他任何电话来实现这一目标,请给我打电话
这意味着您的数组大小不正确或尚未初始化。 您需要在for循环之前执行此操作:
DemoSearchList.StartDate = new string[DS.Tables[0].Rows.Count];
DemoSearchList.EndDate = new string[DS.Tables[0].Rows.Count];
但是我宁愿创建一个列表而不是一个数组(如果不需要每个值的索引):
[DataContract]
public class DemoSearchList : ReturnValuesBase
{
public DemoSearchList()
{
this.StartDate = new List<string>();
this.EndDate = new List<string>();
}
[DataMember]
public List<string> StartDate { get; set; }
[DataMember]
public List<string> EndDate { get; set; }
}
然后,您的for循环可能如下所示:
for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
{
DemoSearchList.StartDate.Add(Convert.ToString(DS.Tables[0].Rows[i][0]));
DemoSearchList.EndDate.Add(Convert.ToString(DS.Tables[0].Rows[i][1]));
}
对于使用Array
length should be defined
其length should be defined
StartDate = new String[10]; //can use data row count here
EndDate = new String[10]; //can use data row count here
如果要使用objects of dynamic length
则使用LIST
代替
或将它们更改为
[DataMember]
public List<String> StartDate { get; set; }
[DataMember]
public List<String> EndDate { get; set; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.