用查询结果填充多值字典
本文关键字:字典 填充 查询 结果 | 更新日期: 2023-09-27 18:04:41
我正在通过SQL查询检索五列。在检索的列中,我有一个列RecordID,它应该作为字典的键。
我指的是发布的解决方案:c#多值字典在StackOverflow,但我不能根据我的情况有效地使用它。
我想存储查询的所有行,但是RecordID列也应该作为字典元素的键。我想要这样的:
Dictionary<RecordID, Entire columns of the current row for this RecordID>
我认为另一种选择是使用数组,比如:
Dictionary<key,string[]>
但是我想用任何超快的方法。
使用Lookup
-您没有说太多关于数据,但您可能需要一些简单的东西,如:
var lookup = list.ToLookup(x => x.RecordID);
当然,ToLookup
的重载允许您做其他事情。
天哪,您需要一个专门的类来保存这些值。由于列来自db表,因此字段的数量是固定的。因此,可以使用具有固定字段的类,而不是动态增长的集合。最后使用KeyedCollection<TKey, TItem>
结构来保存记录集合。在KeyedCollection<TKey, TItem>
中,TKey
部分嵌入在TItem
中,在您的情况下是RecordId
。
class Record
{
public int Id { get; set; }
//rest of the fields
}
你的结构应该看起来像KeyedCollection<int, Record>
。它也保留了插入顺序。您可以通过索引器使用RecordId
查询集合,就像使用字典一样。