【问题标题】:Check if list of objects contains a specific value检查对象列表是否包含特定值
【发布时间】:2019-07-04 20:04:10
【问题描述】:

如果可能的话,我试图弄清楚如何检查对象是否包含特定值。

我的对象内容列表如下:

[{
    "TypeId": 1,
    "Content": "Some content here"
},
{
    "TypeId": 2,
    "Content": "Some new content here"
},
{
    "TypeId": 4,
    "Content": "Some other content here"
}]

现在,我想做的是像这样搜索:

if(commentsList.Contains(4))

我想检查 cmetsList 是否有 TypeId 为 4 的对象。

这个可以吗?

任何帮助表示赞赏并提前感谢:-)

【问题讨论】:

  • cmetsList.Select(x = > x.TypeId).Contains(4) ?或者正如 Jerodev 的回答所说 commentsList.Any(x => x.TypeId ?? 4)
  • 查看您的数据,TypeId 键入的 Dictionary 可能是比列表更好的容器,您可以使用 dic.ContainsKey(4) 进行最佳检索。
  • @vc74 但是您不需要将对象拆分为两个不同的对象,一个是“TypeId”类型,另一个是“Content”类型?
  • @MindSwipe 不,应该是Dictionary<int, Content>
  • @vc74 你可以这样做。但是现在你有List<TypeContent>,你需要把它拆开。我明白您对字典的看法,但只有当您拥有似乎是 JSON 的序列化数据并且需要将其反序列化为对象时,该字典才有意义

标签: c# list object contains


【解决方案1】:

使用Any检查列表中是否有满足要求的元素。

commentsList.Any(x => x.TypeId == 4)

【讨论】:

  • 有很多方法可以做到这一点,使用Any当然是最干净的方法之一
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2015-03-15
  • 2012-10-17
  • 2013-02-10
相关资源
最近更新 更多