首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExpandoObject到DataTable

ExpandoObject到DataTable
EN

Stack Overflow用户
提问于 2014-12-06 00:27:51
回答 2查看 3.7K关注 0票数 3

我是新的ExpandoObject (事实上,我是昨天发现的)。我有以下代码,不知道是否有某种方法可以将ExpandoObject转换为我不知道的DataTable?或者我必须自己使用反射来转换它?

代码语言:javascript
复制
dynamic contacts = new List<dynamic>();

contacts.Add(new ExpandoObject());
contacts[0].Name = "Patrick Hines";
contacts[0].Phone = "206-555-0144";

contacts.Add(new ExpandoObject());
contacts[1].Name = "Ellen Adams";
contacts[1].Phone = "206-555-0155";
EN

回答 2

Stack Overflow用户

发布于 2014-12-06 00:42:32

下面是我要转换它的内容。但是如果有人有更好的方法,请让我知道。

代码语言:javascript
复制
    public DataTable ToDataTable(IEnumerable<dynamic> items)
    {
        var data = items.ToArray();
        if (data.Count() == 0) return null;

        var dt = new DataTable();
        foreach (var key in ((IDictionary<string, object>)data[0]).Keys)
        {
            dt.Columns.Add(key);
        }
        foreach (var d in data)
        {
            dt.Rows.Add(((IDictionary<string, object>)d).Values.ToArray());
        }
        return dt;
    }
票数 6
EN

Stack Overflow用户

发布于 2014-12-06 00:55:06

您可以使用此代码。Linq将帮助您:)

代码语言:javascript
复制
var contacts = new List<dynamic>();

contacts.Add(new ExpandoObject());
contacts[0].Name = "Patrick Hines";
contacts[0].Phone = "206-555-0144";

contacts.Add(new ExpandoObject());
contacts[1].Name = "Ellen Adams";
contacts[1].Phone = "206-555-0155";
// DataTable Instance...
DataTable table = new DataTable();

//Get all properties of contract list items
var properties = contacts.GetType().GetProperties();

// Remove contract list property
properties = properties.ToList().GetRange(0, properties.Count() - 1).ToArray();

// Add column as named by property name
properties.ToList().ForEach(p => table.Columns.Add(p.Name,typeof(string)));

// Add rows from contracts list
contacts.ForEach(x =>  table.Rows.Add(x.Name,x.Phone));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27320412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档