在列表中查找具有给定属性值的对象,然后查找字典值

2023-12-06

我有一个对象列表。这些对象中的每一个都有一个Name财产,以及ObservablePairCollection这只是一个自定义字典,其工作方式与字典完全相同,具有键/值对。

给定两个字符串,一个用于名称,一个用于键,我想找到第一个与给定名称匹配的对象,然后选择pair从该模型的字典中匹配给定的键值。

示例:给定字符串“model1”作为名称,“Latitude”作为键,一个对象的 name 属性等于model1应该找到,然后应该返回对象字典中的键/值对,其中键等于Latitude.

目前我可以做第一部分来匹配Name通过使用:

private ObservableCollection<ModelBase> models;
//add objects to models

string stringToFind = "model1";

models.Single(m => m.Name == stringToFind);

所以,这会返回一个对象Name财产等于model1.

但我无法找到正确的语句来获取键/值对。

这是该类的相关部分:

private ObservablePairCollection<string, string> _fields = new ObservablePairCollection<string, string>();
public ObservablePairCollection<string, string> Fields
{
    get { return _fields; }
    set { _fields = value; OnPropertyChanged("Fields"); }
}

private string _name;
public string Name
{
    get { return _name; }
    protected set
    {
        if (_name != value)
        {
            _name = value;
            OnPropertyChanged("Name");
        }
    }
}

如果可能的话我想使用 LINQ,但如果没有的话也没什么大不了的。


首先,为什么Single?必须只有一个对象具有给定的Name你必须enforce它在这个特定的代码中吗?请记住Single代价高昂,因为它将枚举整个集合以确保找到的对象是唯一的。

如果您只是想找到第一个(如果有的话),那么只需使用适当命名的First扩展方法:

models.First(m => m.Name == stringToFind);

好的,这样就返回了具有给定值的第一个对象Name,如果有的话,你只需要过滤Fields财产权:

var pair = models.First(m => m.Name == stringToFind)
                ?.Fields
                 .First(f => f.Key = keyToFind);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在列表中查找具有给定属性值的对象,然后查找字典值 的相关文章

  • 集群():是否可以仅检查文件是否已锁定,而不实际获取锁定(如果没有)?

    我的用例如下 我有一个程序 它强制在任何给定时间只能运行它的一个实例 因此在启动时它总是尝试在标准位置获取锁定文件 并在该文件终止时终止已经被锁定 这一切都工作正常 但现在我想用一个新的命令行选项来增强程序 当指定该选项时 将导致程序只打印
  • 全局变量不好

    好吧 读完这篇文章和一些示例后 我仍然不清楚全局变量的含义 那么你的类中的私有变量是全局的吗 http www c2 com cgi wiki GlobalVariablesAreBad http www c2 com cgi wiki G
  • Swift 字典映射 - 闭包中的 init

    我有 Swift 字典 private var params String AnyObject 这包含查询项目 例如 lat 40 lon 100 我想将这本词典映射到NSURLQueryItem大批 我想让它 迅速 params map
  • MVVM:来自 FileOpenPicker 的图像绑定源

    我将 OnActivated 添加到 app xaml cs 中 它可以正常工作 protected async override void OnActivated IActivatedEventArgs args var continua
  • 处理器关联组 C#

    我使用的是 72 核的 Windows Server 2016 我看到有两组处理器 我的 net 应用程序将使用一个或其他组 我需要能够强制我的应用程序使用我选择的组 我看到下面的代码示例 但我无法使其工作 我可能传递了错误的变量 我希望应
  • 为类型列表创建别名并将其作为模板参数传递

    我正在使用可变参数模板来实现访问者模式 template
  • 以编程方式更新 Wifi 网络

    我正在尝试创建一个程序 当某个 wifi 网络在范围内时 该程序会连接到该网络 即使已经连接到另一个 wifi 也是如此 我在用着简单Wifi https github com DigiExam simplewifi 基本上效果很好 除了在
  • MVC BaseController 处理 CRUD 操作

    我想重构我的基本 CRUD 操作 因为它们非常重复 但我不确定最好的方法 我的所有控制器都继承 BaseController 如下所示 public class BaseController
  • 在编译输出中添加程序集绑定 (app.config)

    如果我编译应用程序 则会在输出中自动添加程序集绑定 具体的程序集绑定不在app config在 Visual Studio 中但在创建的应用程序配置中 有什么办法可以检查为什么会自动添加程序集绑定吗 选项AutoGenerateBindin
  • R 包与 Rcpp 的链接错误:“未定义符号:LAPACKE_dgels”

    我正在创建一个 R 包 lapacker 以使用 R API 头文件 R ext Lapack h 为 R 提供和使用的内部 LAPACK 库 仅具有双精度和双复数 提供 C 接口 源代码 https github com ypan1988
  • 我应该使用字节还是int?

    我记得曾在某处读到 即使您只需要字节 使用 Int32 更好 就性能而言 它 据说 仅适用于您不关心存储的情况 这是有效的吗 例如 我需要一个保存一周中某一天的变量 我是吗 int dayOfWeek or byte dayOfWeek E
  • 将两个垂直滚动条相互绑定

    我在控件中有两个 TextBox 并且它们都有两个 VerticalScrollBar 我想在它们之间绑定 VerticalScrollBars 如果一个向上 第二个也会向上等等 如果可以的话我该怎么做 Thanks 不是真正的绑定 但它有
  • 批量插入,asp.net

    我需要获取与会员相对应的 ID 号列表 在任何给定时间处理的数量可能在 10 到 10 000 之间 我可以毫无问题地收集数据 解析数据并将其加载到 DataTable 或任何内容 C 中 但我想在数据库中执行一些操作 将所有这些数据插入表
  • 如何使用 itextsharp 更改 PDF 公式的按钮图标?

    我目前正在尝试使用 itextsharp 填写预定义的表单 除了添加图像之外 一切正常 这之前已经在 Adob e 的 FDF 工具包中运行过 该工具包已编译为 NET 1 1 这不再适用于 NET 4 0 我改用了 itextsharp
  • 括号内声明的对象的范围

    如果我声明一个这样的对象 void main myclass objectA anotherclass true true 0 即 我通过直接调用后者的构造函数来创建一个 objectA 和另一个对象 anotherclass anothe
  • Qt - 添加超链接到对话框

    有没有办法在 Qt 对话框中添加可点击的超链接 IE 它应该看起来像一个超链接 蓝色文本 当您单击它时 它应该在浏览器中打开该超链接 像这样的东西 Use QLabel setOpenExternalLinks bool 并在标签上设置文本
  • 结构大小与 typedef 版本不同?

    我的代码中有以下结构声明和 typedef struct blockHeaderStruct bool allocated unsigned int length typedef struct blockHeaderStruct block
  • 使用 StartServiceCtrlDispatcher 与 StartService 从 C 语言启动 Windows 服务有什么区别?

    我尝试使用 StartServiceCtrlDispatcher 中所述https msdn microsoft com en us library windows desktop bb540475 v vs 85 aspx https m
  • asio::this_coro::executor 的实现是什么

    在协程函数中 我们可以添加auto ex co await asio this coro executor 获取该协程的执行者 但当我想了解它的定义时 我发现了这个 Awaitable type that returns the execu
  • Web 和 winforms 的 .Net 身份验证

    我有一个为客户端构建的 ASP NET Web 应用程序 它使用默认的 ASP NET 表单身份验证 他们现在请求一个能够 与 Web 应用程序一起工作的桌面 WinForms 应用程序 我已经创建了 Web 服务来访问他们想要从 Web

随机推荐

  • 在 pandas 中分解具有不同大小列表列的多列

    我有以下情况 我可能会在 csv 文件中获得 300 列 其中一些是列表参数 50 列 并且它们的大小可能不均匀 包括没有值 Time COL1 COL2 2020 03 13 10 43 00 500 0 0 10 0 20 0 30 0
  • php for循环变量名

    我得到了 100 200 条制作表格规则的代码 但整个时间都在发生同样的事情 我有一个变量 xm3 然后我创建一个列 下一行 我得到 xm2 并制作列 下一行 我得到 xm1 并制作列 所以我的变量将是 xm3 xm2 xm1 xm0 xp
  • Javascript 按大写字符拆分字符串

    在 JavaScript 中如何通过大写字符将字符串拆分为数组 所以我想分开 ThisIsTheStringToSplit into This Is The String To Split 我会这样做 match 像这样 ThisIsThe
  • POST 500(内部服务器错误)ajax,mvc

    我有 ajax 请求将数据发送到我的控制器 它收集我的下拉列表的值 错误是 POST http localhost 65070 form create 500 Internal Server Error 错误的响应是 The require
  • 如何通过phonegap打开iPhone应用程序

    我想从我的phonegap应用程序中打开联系人和日历等iPhone应用程序 我不介意这样做会将我的应用程序置于后台 我可以打开浏览器并使用 window open 但如何打开其他应用程序 eg window open contacts bl
  • 如何在 Android 中避免出现此消息

    我在 android 中收到以下错误消息 完成尚未停用或关闭的游标 数据库 data data com example Recipie databases recipedbase db 表 食谱 查询 从食谱中选择不同的标题 其中标题 My
  • 如何暂停线程执行

    如何暂停某些线程的执行 我有 Thread t 并且有两个按钮 暂停和继续 暂停时 我需要暂停线程执行 然后继续线程从之前停止的位置开始执行 听众中应该放什么 Java 中的线程是协作的 这意味着您不能强制线程停止或暂停 而是向线程发出您想
  • 如何打印格式化为网格的二维列表?

    目前 我已经编写了这段代码 def grid maker h w grid for i in range w for i in range h grid 0 0 o print grid gt gt gt grid maker 3 5 gt
  • 仅通过属性上的类型保护来细化父对象

    我有一个类型Box
  • 使用Java检测互联网连接[重复]

    这个问题在这里已经有答案了 可能的重复 如何检查java中是否存在互联网连接 我想看看是否有人有一种简单的方法来检测使用 Java 时是否有互联网连接 当前的应用程序在 Windows 中使用了 WinInit DLL 中的 Interne
  • 保存用户选择的语言,Android

    如何更改默认 string xml 我可以将我的应用程序更改为五种不同的语言 但每当我关闭应用程序并重新打开它时 它会恢复为默认英语 是否可以以某种方式更改默认文件夹 值 例如 从值 英语 默认为值 pt 葡萄牙语 任何帮助深表感谢 你可以
  • FCM接收消息问题

    我正在将 FCM 集成到我的项目中 但在收到通知时 我在日志中收到以下错误 错误文字颜色为蓝色 W FirebaseMessaging Received message with unknown type text 我的代码是这样的 pub
  • Postgresratio_to_report函数

    有人可以告诉我如何安装分析功能 特别是报告比率Postgres 数据库中的函数 我尝试在 postgres 提供的模块中搜索 但没有看到包含该函数的模块 报告比率 RATIO TO REPORT 是一个分析函数 它计算一个值与一组值之和的比
  • 如何通过pip安装MySQL-python?

    venv bin pip install MySQL python Collecting MySQL python Downloading MySQL python 1 2 5 zip 108kB 100 112kB 1 2MB s Com
  • 绘制误差线(百分位数)

    我对 python 很陌生 我需要一些帮助 我想在绘图上绘制相当于 1sigma 标准差的误差条 作为分布的第 16 个和第 84 个百分位值 我尝试过 使用 matplotlib err np std x 但它只是给了我标准差 谢谢 如果
  • 尝试用 PHP 解析 JSON

    我是 php 新手 这确实难倒了我 我正在尝试解析这个 json 以获取值match id result status 1 num results 1 total results 500 results remaining 499 matc
  • 为什么我不能对一个打开的文件调用 read() 两次?

    对于我正在做的练习 我尝试使用以下命令读取给定文件的内容两次read 方法 奇怪的是 当我第二次调用它时 它似乎没有以字符串形式返回文件内容 这是代码 f f open get the year match re search r Popu
  • Ubuntu 16.04 LTS 上的 PCL(点云库)1.7 构建错误

    我将 Ubuntu 版本从 14 04 lts 更新到 16 04 lts 在构建利用点云库的项目时遇到问题 它曾经在 Ubuntu 14 04 上运行良好 我使用 qtcreator 构建我的项目 我收到的警告消息是 警告 usr lib
  • 从向量中提取时使用 NA 作为索引

    在下面的代码中 x lt 1 8 x NA 我期待着一个TRUE or FALSE回答但我有八个NA反而 我发现了is na提供了TRUE FALSE我正在寻找的 但是 我仍然不确定为什么用向量子集NA结果是NA 有什么解释吗 来自索引中的
  • 在列表中查找具有给定属性值的对象,然后查找字典值

    我有一个对象列表 这些对象中的每一个都有一个Name财产 以及ObservablePairCollection这只是一个自定义字典 其工作方式与字典完全相同 具有键 值对 给定两个字符串 一个用于名称 一个用于键 我想找到第一个与给定名称匹