把他们放到一个集合中就可以了public class test { private string a; public string A { get{return a;} set{a=value;} } private string b; public string B { get{return b;} set{b=value;} } }test[] tests=null; test test1=new test(); test1.A="a1"; test1.B="b1"; test test2=new test(); test2.A="a2"; test2.B="b2"; tests=new test[2]{test1,test2};
this.dataGrid1.DataSource=tests;
谢谢thinkingforever,你的方法可以。不过我已经写了将对象数组转换为DataSet的类。给大家分享。public class ObjectToDataSet { public static DataSet ObjectArrayToDataSet(object[] objArr) { if (objArr.Length == 0) return null; DataSet ds = CreateDataSet(objArr[0].GetType()); ds = FillDataSet(ds, objArr); return ds; } public static DataSet CreateDataSet(Type t) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); ds.Tables.Add(dt); PropertyInfo[] pis = t.GetProperties(); foreach (PropertyInfo pi in pis) { DataColumn dc = new DataColumn(pi.Name, pi.PropertyType); dt.Columns.Add(dc); } return ds; } public static DataSet FillDataSet(DataSet ds, object[] objArr) { DataColumnCollection dcs = ds.Tables[0].Columns; Type t = objArr[0].GetType(); foreach (object obj in objArr) { DataRow dr = ds.Tables[0].NewRow(); for (int i = 0; i < dcs.Count; i++) { dr[i] = t.InvokeMember(dcs[i].ColumnName, BindingFlags.GetProperty, null, obj, null); } ds.Tables[0].Rows.Add(dr); } return ds; }
{
private string a;
public string A
{
get{return a;}
set{a=value;}
}
private string b;
public string B
{
get{return b;}
set{b=value;}
} }test[] tests=null;
test test1=new test();
test1.A="a1";
test1.B="b1";
test test2=new test();
test2.A="a2";
test2.B="b2";
tests=new test[2]{test1,test2};
this.dataGrid1.DataSource=tests;
{ public static DataSet ObjectArrayToDataSet(object[] objArr)
{
if (objArr.Length == 0)
return null;
DataSet ds = CreateDataSet(objArr[0].GetType());
ds = FillDataSet(ds, objArr);
return ds;
} public static DataSet CreateDataSet(Type t)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds.Tables.Add(dt); PropertyInfo[] pis = t.GetProperties();
foreach (PropertyInfo pi in pis)
{
DataColumn dc = new DataColumn(pi.Name, pi.PropertyType);
dt.Columns.Add(dc);
}
return ds;
} public static DataSet FillDataSet(DataSet ds, object[] objArr)
{
DataColumnCollection dcs = ds.Tables[0].Columns;
Type t = objArr[0].GetType();
foreach (object obj in objArr)
{
DataRow dr = ds.Tables[0].NewRow();
for (int i = 0; i < dcs.Count; i++)
{
dr[i] = t.InvokeMember(dcs[i].ColumnName, BindingFlags.GetProperty, null, obj, null);
}
ds.Tables[0].Rows.Add(dr);
}
return ds;
}
}