gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 17:46:30 24 4
gpt4 key购买 nike

我现在正在使用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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com