用查询结果填充多值字典

本文关键字:字典 填充 查询 结果 | 更新日期: 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查询集合,就像使用字典一样。