c# - 当列表中不存在值时如何比较对象和List<>和object.value null
问题描述
我需要在我的对象和列表之间进行比较。列表包含属性“nom_colonne”,它由查询填充,结果是属性列表(与我的对象 AppareilsReparations 相同)
例如:如果 droit_utilisateur.nom_colonne = "Num_dossier" 所以我将值保留在 arp.num_dossier
但是,如果我的列表 droit_utilisateur 没有这个值: arp.num_dossier 将为空。
我想用 System.Collections.IList 投射我的对象,但无法投射。我有一个错误。
public class AppareilsReparations
{
public string Num_dossier { get; set; }
//public string reference_aff { get; set; }
public int Id { get; set; }
public Guid Uid { get; set; }
public string ref_sav { get; set; }
public CodeDefaut codedefaut { get; set; }
public CodeSymptome codesymptome { get; set; }
}
public class Droits
{
public int id { get; set; }
public int utilisateur_id { get; set; }
public string nom_table { get; set; }
public string nom_colonne { get; set; }
}
AppareilsReparations arp = db.Query<AppareilsReparations>
("select * from v_appareils_reparations where ref_sav_client =@ref_sav", new { ref_sav }).SingleOrDefault();
List<Droits> droit_utilisateur = GetDroits("admin");
//var appareil = new List<AppareilsReparations>();
IList appareil = (IList)arp;
var result = droit_utilisateur.Where(x => !appareil.Contains(x.nom_colonne)).ToList();
解决方案
那是因为AppareilsReparations
不是一种类型,IList
因此您的演员阵容总是会失败IList appareil = (IList)arp;
。可能你想做下面的事情;只是与类型的Num_dossier
字段进行比较AppareilsReparations
var result = droit_utilisateur.Where(x => x.nom_colonne == arp.Num_dossier).ToList();
推荐阅读
- sql - SQL,在运算符之间但仅使用一列
- r - 如何从 R 中的矩阵创建精确对应的热图
- webhooks - 如何使用 EMV 读卡器跟踪 Authorize.Net 销售点交易
- php - 从选择标签中获取选定的值
- javascript - 我在将我的机器人从 v11 更新到 v12 时遇到了一些问题
- json - 使用 Logtash 删除 Json 对象名称
- xml - 如何在 Rust 中读取/写入 XML 到 TcpStream?
- python - 在 tensorflow 中为 CBOW 模型生成数据
- sql - PL/SQL Developer 命令窗口脚本编码
- c# - 单击图表并使用 MVVM 在另一个窗口中打开相同的图表?