c#net 怎么给一个entity类型的list 转换成dataset

 我来答
仙戈雅3n
2016-08-01 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:893万
展开全部
  // 扩展List集合
    static class ExternList {
        public static DataSet ToDataSet<TSource>(this IList<TSource> list)
        {
            Type elementType = typeof(TSource);
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            ds.Tables.Add(dt);

            foreach (var pi in elementType.GetProperties())
            {
                Type colType = Nullable.GetUnderlyingType(pi.PropertyType) ?? pi.PropertyType;
                dt.Columns.Add(pi.Name, colType);
            }

            foreach (TSource item in list)
            {
                DataRow row = dt.NewRow();
                foreach (var pi in elementType.GetProperties())
                {
                    row[pi.Name] = pi.GetValue(item, null) ?? DBNull.Value;
                }
                dt.Rows.Add(row);
            }

            return ds;
        }
    }
    
    // 调用示例:
    public class YourType{
      public string Name { get; set; }
    }
    IList<YourType> list = new List<YourType>{
              new YourType(){Name="Foo1"},
              new YourType(){Name="Foo2"},
              new YourType(){Name="Foo3"}
    };

    DataSet ds = list.ToDataSet<YourType>();
    DataTable dt = ds != null && ds.Tables.Count > 0 ? ds.Tables[0] : null;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式