我想将每个项目存储到一个放在foreach循环内的json数组。我怎么可能?
目前我的代码是
foreach (DataRow drow1 in alltheatre.Rows)
{
string theatname = drow1["TheatreName"].ToString();
string latitude = drow1["Latitude"].ToString();
string longitude = drow1["Longitude"].ToString();
string theatname = drow1["TheatreName"].ToString();
string theatid = drow1["TheatreDetailsId"].ToString();
string theataddre = drow1["TheatreAddress"].ToString();
string cntctnu = drow1["ContactNum"].ToString();
string theatimg = drow1["TheatreImage"].ToString();
string descr = drow1["TheatreDesc"].ToString();
string mouvieid = drow1["MovieMasterId"].ToString();
array = new[]
{
new
{
Name = theatname,
Theatrdetailsid=theatid,
image=theatimg,
lat=latitude,
longi=longitude,
adress=theataddre,
contactnum=cntctnu,
desc=descr,
}
},
}
}
在这里,我有一个foreach循环来获取有关影院的详细信息,我试图将每个数据存储到json数组,但我只能设法存储1个数据,即最后一个。如何解决此问题。< / p>
答案 0 :(得分:1)
您需要在foreach
循环之外声明新集合。你只有一个,因为每次都会创建一个新数组。
您应该使用List<T>
而不是数组。这将更容易,除非您想使用LINQ或创建一个Rows
集合大小的数组。
var array = new List<object>();
foreach (var row in alltheatre.Rows)
{
// Get your properties
array.Add(new
{
// Set your properties
});
}
答案 1 :(得分:1)
我会使用LINQ's Select来映射每一行:
IEnumerable<object> mapped = alltheatre.Rows.Select(row => new
{
Name = row["TheatreName"].ToString(),
Theatrdetailsid = row["TheatreDetailsId"].ToString()
// ...
});
如果您需要它在原始数组中,可以调用ToArray():
object[] mappedArray = mapped.ToArray();