C# 在C中不添加所有值的列表#

C# 在C中不添加所有值的列表#,c#,.net,json,C#,.net,Json,我尝试了下面的代码来创建json代码,代码运行良好 我从db加载了值,但只有最后一个值得到了输出。剩余值未添加 DataTable dt = new DataTable(); var objectToSerialize = new RootObject(); SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString()); SqlComm

我尝试了下面的代码来创建json代码,代码运行良好

我从db加载了值,但只有最后一个值得到了输出。剩余值未添加

DataTable dt = new DataTable();
var objectToSerialize = new RootObject();
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
SqlCommand command = new SqlCommand("select * from IFlicksMenu", connection);
SqlDataAdapter da = new SqlDataAdapter(command);
da.Fill(dt);

foreach (DataRow dr in dt.Rows)
{
    foreach (DataColumn col in dt.Columns)
    { 
        objectToSerialize.contacts = new List<Cont> 
        {
            new Cont
            { 
                sno = dr["Cinema"].ToString(), 
                name = dr["Gallery"].ToString(), 
                address =  dr["star"].ToString(), 
                gender =  dr["video"].ToString(), 
                em = dr["em"].ToString(),
                phone=new Phone { mobile=dr["phonone"].ToString() } 
            },
        };          
    }

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    Response.Write(serializer.Serialize(new { item = objectToSerialize.contacts }));
}

当您希望在循环开始时创建联系人并继续添加到列表中时,可以为每个项目重新创建
联系人

var items = new List<Cont>();
foreach (DataRow dr in dt.Rows)
{ 
    items.Add(new Cont{ 
        sno = dr["Cinema"].ToString(), 
        name = dr["Gallery"].ToString(), 
        address =  dr["star"].ToString(), 
        gender =  dr["video"].ToString(), 
        em = dr["em"].ToString(),
        phone = new Phone{ mobile=dr["phonone"].ToString() }
    });
}
objectToSerialize.contacts = items;

因为它将有效地将行数乘以列数

当您希望在循环开始时创建联系人并继续添加到列表中时,可以为每个项目重新创建联系人:

var items = new List<Cont>();
foreach (DataRow dr in dt.Rows)
{ 
    items.Add(new Cont{ 
        sno = dr["Cinema"].ToString(), 
        name = dr["Gallery"].ToString(), 
        address =  dr["star"].ToString(), 
        gender =  dr["video"].ToString(), 
        em = dr["em"].ToString(),
        phone = new Phone{ mobile=dr["phonone"].ToString() }
    });
}
objectToSerialize.contacts = items;
因为它将有效地将行数乘以列数

尝试使用

objectToSerialize.contacts.Add( new List<Cont> 
{
    new Cont{ sno = dr["Cinema"].ToString(), name = dr["Gallery"].ToString(), address =  dr["star"].ToString(), gender =  dr["video"].ToString(), em = dr["em"].ToString(),phone=new Phone{mobile=dr["phonone"].ToString()} },
});       
objectToSerialize.contacts.Add(新列表
{
新Cont{sno=dr[“电影院”].ToString(),name=dr[“画廊”].ToString(),address=dr[“明星”].ToString(),gender=dr[“视频”].ToString(),em=dr[“em”].ToString(),phone=new phone{mobile=dr[“phonone”].ToString()},
});       
而不是

objectToSerialize.contacts = new List<Cont> 
{
    new Cont{ sno = dr["Cinema"].ToString(), name = dr["Gallery"].ToString(), address =  dr["star"].ToString(), gender =  dr["video"].ToString(), em = dr["em"].ToString(),phone=new Phone{mobile=dr["phonone"].ToString()} },
};       
objectToSerialize.contacts=新列表
{
新Cont{sno=dr[“电影院”].ToString(),name=dr[“画廊”].ToString(),address=dr[“明星”].ToString(),gender=dr[“视频”].ToString(),em=dr[“em”].ToString(),phone=new phone{mobile=dr[“phonone”].ToString()},
};       
尝试使用

objectToSerialize.contacts.Add( new List<Cont> 
{
    new Cont{ sno = dr["Cinema"].ToString(), name = dr["Gallery"].ToString(), address =  dr["star"].ToString(), gender =  dr["video"].ToString(), em = dr["em"].ToString(),phone=new Phone{mobile=dr["phonone"].ToString()} },
});       
objectToSerialize.contacts.Add(新列表
{
新Cont{sno=dr[“电影院”].ToString(),name=dr[“画廊”].ToString(),address=dr[“明星”].ToString(),gender=dr[“视频”].ToString(),em=dr[“em”].ToString(),phone=new phone{mobile=dr[“phonone”].ToString()},
});       
而不是

objectToSerialize.contacts = new List<Cont> 
{
    new Cont{ sno = dr["Cinema"].ToString(), name = dr["Gallery"].ToString(), address =  dr["star"].ToString(), gender =  dr["video"].ToString(), em = dr["em"].ToString(),phone=new Phone{mobile=dr["phonone"].ToString()} },
};       
objectToSerialize.contacts=新列表
{
新Cont{sno=dr[“电影院”].ToString(),name=dr[“画廊”].ToString(),address=dr[“明星”].ToString(),gender=dr[“视频”].ToString(),em=dr[“em”].ToString(),phone=new phone{mobile=dr[“phonone”].ToString()},
};       

您正在为每次迭代实例化
foreach
内部的列表,因此它将进行最终迭代。您可以在
foreach
外部定义列表对象,并在
foreach
内部定义值

List<Cont> ContCollection =  new List<Cont>();
foreach (DataRow dr in dt.Rows)
{
    foreach (DataColumn col in dt.Columns)
    { 
        ContCollection.Add(new Cont(){
                            sno = dr["Cinema"].ToString(), 
                            name = dr["Gallery"].ToString(), 
                            address =  dr["star"].ToString(), 
                            gender =  dr["video"].ToString(), 
                            em = dr["em"].ToString(),
                            phone=new Phone { mobile=dr["phonone"].ToString() }
                           });


    }
    objectToSerialize.contacts = ContCollection;
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    Response.Write(serializer.Serialize(new { item = objectToSerialize.contacts }));
}
List ContCollection=new List();
foreach(数据行dr在dt.行中)
{
foreach(dt.列中的数据列列列)
{ 
ContCollection.Add(新Cont(){
sno=dr[“电影院”]。ToString(),
name=dr[“Gallery”].ToString(),
地址=dr[“star”]。ToString(),
性别=dr[“视频”]。ToString(),
em=dr[“em”].ToString(),
phone=新手机{mobile=dr[“phonone”].ToString()}
});
}
objectToSerialize.contacts=ContCollection;
JavaScriptSerializer serializer=新的JavaScriptSerializer();
Write(serializer.Serialize(new{item=objectToSerialize.contacts}));
}

您正在为每次迭代实例化
foreach
内部的列表,因此它将进行最终迭代。您可以在
foreach
外部定义列表对象,并在
foreach
内部定义值

List<Cont> ContCollection =  new List<Cont>();
foreach (DataRow dr in dt.Rows)
{
    foreach (DataColumn col in dt.Columns)
    { 
        ContCollection.Add(new Cont(){
                            sno = dr["Cinema"].ToString(), 
                            name = dr["Gallery"].ToString(), 
                            address =  dr["star"].ToString(), 
                            gender =  dr["video"].ToString(), 
                            em = dr["em"].ToString(),
                            phone=new Phone { mobile=dr["phonone"].ToString() }
                           });


    }
    objectToSerialize.contacts = ContCollection;
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    Response.Write(serializer.Serialize(new { item = objectToSerialize.contacts }));
}
List ContCollection=new List();
foreach(数据行dr在dt.行中)
{
foreach(dt.列中的数据列列列)
{ 
ContCollection.Add(新Cont(){
sno=dr[“电影院”]。ToString(),
name=dr[“Gallery”].ToString(),
地址=dr[“star”]。ToString(),
性别=dr[“视频”]。ToString(),
em=dr[“em”].ToString(),
phone=新手机{mobile=dr[“phonone”].ToString()}
});
}
objectToSerialize.contacts=ContCollection;
JavaScriptSerializer serializer=新的JavaScriptSerializer();
Write(serializer.Serialize(new{item=objectToSerialize.contacts}));
}

您正在foreach中创建一个新的
列表
。。。尝试在foreach外部创建它。您正在foreach中创建一个新的
列表
。。。尝试在foreach之外创建它。