gpt4 book ai didi

c# - 在 C# 中将 DataTable 转换为通用列表

转载 作者:IT王子 更新时间:2023-10-29 04:17:55 25 4
gpt4 key购买 nike

免责声明:我知道它在 SO 的很多地方被问过。
我的查询有点不同。

编码语言:C# 3.5

我有一个名为 cardsTable 的数据表,它从数据库中提取数据,我有一个只有一些属性(没有构造函数)的类 Cards

public class Cards
{
public Int64 CardID { get; set; }
public string CardName { get; set; }
public Int64 ProjectID { get; set; }
public Double CardWidth { get; set; }
public Double CardHeight { get; set; }
public string Orientation { get; set; }
public string BackgroundImage { get; set; }
public string Background { get; set; }
}

我想将 cardsTable 数据插入到一个 List 类型的对象中。
我的数据中将包含空字段,因此当我转换数据时该方法不应出错。以下方法是最好的方法吗?

DataTable dt = GetDataFromDB();
List<Cards> target = dt.AsEnumerable().ToList().ConvertAll(x => new Cards { CardID = (Int64)x.ItemArray[0] });

最佳答案

您实际上可以大大缩短它。您可以将 Select() 扩展方法视为类型转换器。转换可以这样写:

List<Cards> target = dt.AsEnumerable()
.Select(row => new Cards
{
// assuming column 0's type is Nullable<long>
CardID = row.Field<long?>(0).GetValueOrDefault(),
CardName = String.IsNullOrEmpty(row.Field<string>(1))
? "not found"
: row.Field<string>(1),
}).ToList();

关于c# - 在 C# 中将 DataTable 转换为通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4104464/

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