gpt4 book ai didi

.net - 将数据从一个列表添加到另一个列表的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:59:22 24 4
gpt4 key购买 nike

我有一个这样的对象列表:

someID: 1234   values: A, B
someID: 891 values: C

我有一个包含一些行的数据表。

1234 D
891 E
1234 F

我想将 datatable 中的这些值添加到内存列表中它们各自的对象中。因此,例如,我想在列表中找到 ID 1234 的对象,并将值 DF 添加到该对象。

什么会有最好的表现?

  1. 对数据表进行排序并遍历,每次搜索列表
  2. 将数据表存储到哈希表/字典中,然后遍历列表,对每个键执行字典查找
  3. 还有别的吗?

编辑:不是真正的数据库问题,我会尽量让它更清楚

最佳答案

您可以使用Linq-To-DataSet:

var both  = from row in dt.AsEnumerable()
join objA in objectAList
on row.Field<int>(0) equals objA.someID
select new { row, objA };
foreach(var x in both)
{
x.objA.values.Add(x.row.Field<string>(1)); // presuming an `IList<T>`
}

如果它不是一个列表而是一个数组,你可以使用:

x.objA.values = x.objA.values.Concat(new[]{x.row.Field<string>(1)}).ToArray();  

Enumerable.Join 在底层使用一个集合,所以 it's rather efficient .

关于.net - 将数据从一个列表添加到另一个列表的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26003013/

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