如何使用c#将每个项存储在json数组中
本文关键字:存储 json 数组 何使用 | 更新日期: 2023-09-27 18:20:26
我想将每个项存储到一个json数组中,该数组位于foreach循环中。我怎么可能?
目前我的代码是
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个数据,即最后一个数据。如何解决此问题。
您需要在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
});
}
我会使用LINQ的Select来映射每一行:
IEnumerable<object> mapped = alltheatre.Rows.Select(row => new
{
Name = row["TheatreName"].ToString(),
Theatrdetailsid = row["TheatreDetailsId"].ToString()
// ...
});
如果你需要它在一个原始数组中,你可以调用ToArray():
object[] mappedArray = mapped.ToArray();