当前位置: 首页 > 知识库问答 >
问题:

保存一对相同类型的值

东门新立
2023-03-14

背景:对于我的用户,我需要存储一对相同的对象类型(设置),目前我有它像

Dictionary<long, List<KeyValueType<Setting, Setting>>> SettingKeyPairs 

我正在创建带有设置的KeyValueTypes,并将其添加到列表中(每个用户都有一个列表)。我的设置有一个值字段(它显示了它们是否比其他设置“更重要”),所以我希望基于该字段添加它们,稍后我还需要基于该字段(可能还需要基于名称字段)进行搜索--所以搜索将不得不在列表中查找,然后在KeyValueTypes中查找

问题:什么是最好的数据来代替KeyValueTypes?对于添加/搜索部分,当我需要根据一个特定的值/值来做它时,它很麻烦。我也尝试过元组,但仍然不认为这是好的。

共有1个答案

寿卜鹰
2023-03-14

从你的问题上很难说--也许我并不完全理解。但我可能会存储setting类型的列表,并公开一个返回最高值的getter(或任何条件)。

public class RankedSettings
{
   public RankedSettings(IEnumerable<Setting> settings)
   {
      _settings = settings;
   }

   private readonly IEnumerable<Setting> _settings;


   public Setting GetHighestValue() => _settings.OrderByDescending(x => x.Value).FirstOrDefault();
}

...

var userSettingsCollection = new Dictionary<long, RankedSettings>();

...

var settings = userSettingsCollection[userId]?.GetHighestValue();

当然,您可以更好地将其打包,以便重写字典getter来为您执行GetHighestValue()调用。

 类似资料:
  • 当我保存以下实体时,它在另一个对象中复制相同的值: 例如,在我的struts项目(屏幕)中,如果我更改shipmentShipper字段的值,那么Shipment收货人也将使用相同的值进行更新。 实体: 仓库类: JSP中的字段映射(工作正常): 请检查屏幕截图,我将发货人更改为C4并保存。收货人也被选为C4。请注意,两个选择都使用相同的数据列表填充。(客户名单)

  • 我正在学习SpringJPA,我从将对象映射到表开始。我对OneToOne和OneToMany的关系没有问题,但我不太明白为什么我不能预先列出一个与许多关系相关的对象。我有一本可以有很多作者的书,还有一本可以有很多书的作者。通过中间表book_author正确生成模式(我可以在MySql Workbench中看到),但我得到以下示例: Hibernate:在作者(名字、姓氏)中插入值(?,) Hi

  • 问题内容: 我试图将数据库表保存在班级 学生* 的 ListArray 中。 * 在while循环中,当我尝试将数据打印为 它打印完美。但是当我尝试将其打印为 它打印从数据库读取的最后一条记录。记录数相同。如果在数据库表中保存了4行,那么显示的记录也将是4次。 我使用LIST的方式有问题吗?谢谢! 问题答案: 更改为 您是,因为您创建 了。您必须在数据库中添加等于。因此,创建如下。 使用

  • 我需要编写一个java方法来从一个对象中获取特定的信息。但是,该对象可以是A类型的,也可以是B类型的。下面是我的代码的一部分: 当我这样写它时,它会引发一个错误,说“重复方法”。我怎么才能让这个起作用?

  • 本文向大家介绍创建许多相同类型的JavaScript对象?,包括了创建许多相同类型的JavaScript对象?的使用技巧和注意事项,需要的朋友参考一下 创建单个对象比创建相同类型的多个对象要容易得多。为了克服这一障碍,javascript提供了对象构造函数。使用此函数,首先,我们必须创建对象的类型,然后,我们需要声明对象的属性 。 示例 在下面的示例中,最初,我们声明了包含“名称”,“属性”,“年

  • 我有个奇怪的问题。我有三节课。书(摘要)和两个子类(小说、非小说类)。我已经创建了一系列参考书。该数组可以容纳两个子类的对象。我有以下小说课的代码。 } 非小说类的“相同”代码 } 这是主程序。 公共课主课{ 公共静态void main(字符串[]args){ } 出于任何原因,我在这一行得到ArrayStore异常... 但同样的代码也适用于小说类。我查看了java文档,它说当我试图在数组中存储