c# - 如何在C#中将DataTable转换为List <String>

标签 c#

我现在正在使用C#Linq将DataTable转换为List
我被困住了...
给我正确的方向谢谢..

    private void treeview1_Expanded(object sender, RoutedEventArgs e)
    {

        coa = new List<string>();
        //coa = (List<string>)Application.Current.Properties["CoAFull"];
        HMDAC.Hmclientdb db = new HMDAC.Hmclientdb(HMBL.Helper.GetDBPath());

        var data = (from a in db.CoA
                    where a.ParentId == 0 && a.Asset == true
                    select new { a.Asset, a.Category, a.CoAName, a.Hide, a.Recurring, a.TaxApplicable });

        DataTable dtTable = new DataTable();
        dtTable.Columns.Add("Asset", typeof(bool));
        dtTable.Columns.Add("Category", typeof(string));
        dtTable.Columns.Add("CoAName", typeof(string));
        dtTable.Columns.Add("Hide", typeof(bool));
        dtTable.Columns.Add("Recurring", typeof(bool));
        dtTable.Columns.Add("TaxApplicable", typeof(bool));

        if (data.Count() > 0)
        {
            foreach (var item in data)
            {
                DataRow dr = dtTable.NewRow();
                dr["Asset"] = item.Asset;
                dr["Category"] = item.Category;
                dr["CoAName"] = item.CoAName;
                dr["Hide"] = item.Hide;
                dr["Recurring"] = item.Recurring;
                dr["TaxApplicable"] = item.TaxApplicable;
                dtTable.Rows.Add(dr);

            }
        }


        coa = dtTable;



    }

最佳答案

看来您已经有一个强类型列表。为什么将其转换为弱类型DataTable然后返回列表?

var data = 
    from a in db.CoA
    where a.ParentId == 0 && a.Asset == true
    select new 
    { 
        a.Asset, 
        a.Category, 
        a.CoAName, 
        a.Hide, 
        a.Recurring, 
        a.TaxApplicable 
    };
var list = data.ToList();


如果您希望能够在方法范围之外使用此列表,请定义一个将包含不同属性的类型,并在您的select语句中使用此类型而不是匿名类型,例如:

var data = 
    from a in db.CoA
    where a.ParentId == 0 && a.Asset == true
    select new MyType
    { 
        Asset = a.Asset, 
        Category = a.Category, 
        CoAName = a.CoAName, 
        Hide = a.Hide, 
        Recurring = a.Recurring, 
        TaxApplicable = a.TaxApplicable 
    };
List<MyType> list = data.ToList();

关于c# - 如何在C#中将DataTable转换为List <String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2963765/

相关文章:

c# - 如何同时对多个对象进行验证并将其添加到部分 View

C#绘图消失(其实更多的是系统问题)

c# - XCopy 在构建期间失败但不是从命令行失败?

c# - 连接池中处于 TIME_WAIT 状态的许多连接,在 WebApi 中使用静态或单个 HttpClient 实例

c# - MVVM 中的可见性转换器未更新

c# - asp.net中的弹出窗口

c# - 如何将 lambda 表达式作为参数插入 mongodb 'collection.find' 方法?

c# - 如何让 IKVM 在 Visual Studio 2008 中构建?

c# - 是否有任何好的 VB/C# x86 反汇编程序库?

c# - 将列表转换为字符串列表