如何使用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个数据,即最后一个数据。如何解决此问题。

如何使用c#将每个项存储在json数组中

您需要在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();