gpt4 book ai didi

.net - 将数据表转换为通用列表的最快方法

转载 作者:行者123 更新时间:2023-12-02 15:48:30 25 4
gpt4 key购买 nike

我有一个返回数据表的数据层选择方法。它是从业务层方法调用的,然后该方法应返回强类型通用列表。

我想做的与这个问题非常相似(但不相同):
How do you convert a DataTable into a generic list?

不同的是,我希望列表包含强类型对象而不是数据行(而且,我这里还没有可用的 linq)。

我担心性能。业务层方法将从表示层调用,并且结果将被迭代以显示给用户。在业务层添加额外的迭代似乎非常浪费,只在演示时立即再次执行,所以我希望这尽可能快。

这是一项常见任务,所以我真的在寻找一种可以一遍又一遍重复的好模式。

最佳答案

上面示例的问题是速度非常慢。我有一个大约有 400 行的数据表,这个转换需要 5 或 6 秒!

这看起来确实是一个非常常见的任务,所以我很惊讶没有看到有人在这里提供更高效的解决方案。

* 更新!! *只是为了好玩,我想尝试使用 LINQ 进行转换,而不是迭代 DataTable 并添加到我的列表中。以下是我所做的:

   List<MyObject> returnList = new List<MyObject>();

MyDataTable dtMyData = new MyTableAdapter().GetMyData();

returnLists = (from l in dtMyData
select new MyObject
{
Active = l.IsActive,
Email = l.Email,
//...
//About 40 more properties
//...
ZipCode = l.Zipcode
}).ToList();

第一个方法(遍历每一行)花费了 5.3 秒,使用 LINQ 的方法花费了 1.8 秒!

关于.net - 将数据表转换为通用列表的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/441023/

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