积极答复者
有关c# 3.0中的集合初始值设定项

问题
-
public class parame { public String Name { get; set; } public Int32 Age { get; set; } } public class Program { static void Main(string[] args) { IList<parame> people = new List<parame>() { new parame{ Name = "张三", Age = 18}, new parame{ Name = "李四", Age = 20} }; foreach (var i in people)//var 是3.0特有的 { Console.WriteLine("{0},{1}", i.Name, i.Age); } Console.ReadLine(); } }
上面是有关c# 3.0中的集合初始值设定项例子,里面的值是一个加进去的。如果我是从数据库读出来怎么加进去。。已前是用foreach中list.add加进去的。。
List<shopInfo> temp =new List<shopInfo>(); DataSet ds = AccessHelper.ExecuteDataSet(AccessHelper.conn, SQL_SELECT_GETSHOPLIST, null); foreach(DataRow row in ds.Tables[0].Rows) temp.Add(new shopInfo(Convert.ToInt32(row["ID"]),row["Name"].ToString()));
不知道c#3.0中的集合初始值怎么数据库里的字段值
不知道,这c# 3.0中的集合初始值设定项怎么加数据库里的值。。
答案
-
你好!
你可以先把数据库里的数据加载到DataSet或DataTable中,然后再处理。Rows,Columns等属性本身就是集合。
如果你想导入其他集合没有继承关系的集合,那只能用常规方法来添加。
周雪峰- 已标记为答案 BoberSongModerator 2010年7月14日 7:02
-
是这么玩的:
// 我凭空做了个数据集,你把dt替换成你从数据库里读取到的DataTable。
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Age", typeof(Int32));
DataRow dr1 = dt.NewRow();
dr1["Name"] = "张三";
dr1["Age"] = 18;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["Name"] = "李四";
dr2["Age"] = 20;
dt.Rows.Add(dr2);// 来这么一句。
IList<DataRow> people = dt.AsEnumerable().Cast<DataRow>().ToList<DataRow>();// 遍历。
foreach (var i in people)
{
Console.WriteLine("{0},{1}", i["Name"], i["Age"]);
}- 已标记为答案 BoberSongModerator 2010年7月14日 7:02
全部回复
-
你好!
你可以先把数据库里的数据加载到DataSet或DataTable中,然后再处理。Rows,Columns等属性本身就是集合。
如果你想导入其他集合没有继承关系的集合,那只能用常规方法来添加。
周雪峰- 已标记为答案 BoberSongModerator 2010年7月14日 7:02
-
是这么玩的:
// 我凭空做了个数据集,你把dt替换成你从数据库里读取到的DataTable。
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Age", typeof(Int32));
DataRow dr1 = dt.NewRow();
dr1["Name"] = "张三";
dr1["Age"] = 18;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["Name"] = "李四";
dr2["Age"] = 20;
dt.Rows.Add(dr2);// 来这么一句。
IList<DataRow> people = dt.AsEnumerable().Cast<DataRow>().ToList<DataRow>();// 遍历。
foreach (var i in people)
{
Console.WriteLine("{0},{1}", i["Name"], i["Age"]);
}- 已标记为答案 BoberSongModerator 2010年7月14日 7:02