【问题标题】:How to check if a list of object contains an object with a specified properties如何检查对象列表是否包含具有指定属性的对象
【发布时间】:2016-12-23 10:57:51
【问题描述】:

我有一个重复对象列表:

var duplicates = workspace.Maps.GroupBy(m => m.sFolder).SelectMany(grp => grp.Skip(1)).ToList();

我想要一个if 语句来检查列表是否包含具有特定属性的对象:

if (duplicates.Contains(myObject.sFolder)) // "myObject.sFolder" raise an error (of course)
{
    // Do stuff
}

有简单的方法吗?

【问题讨论】:

  • 你说的我不能这样做到底是什么意思?
  • 不确定这里比较的是什么,但像这样? if (duplicates.Any(x => x.sFolder == myObject.sFolder)) // 但我不能这样做... { // 做点什么 }
  • 如果您希望最多匹配一次,为什么不使用 for 循环并在找到重复项后中断
  • @S.Akbari 抱歉,我已经更新了我的问题

标签: c# .net linq list


【解决方案1】:

你可以这样检查

if (duplicates.Any(a => a.sFolder == myObject.sFolder))
{
    // Do stuff
}

【讨论】:

    【解决方案2】:

    不确定这里比较的是什么,但类似这样?

    if (duplicates.Any(x => x.sFolder == myObject.sFolder)) 
    {
        // Do stuff
    }
    

    【讨论】:

      【解决方案3】:

      以防万一您需要重复的对象进行进一步检查尝试

      var duplicate = duplicates.FirstOrDefault(m => m.sFolder == myObject.sFolder);
      
      if(duplicate != null)
      {
          // Further check duplicate
      }
      

      【讨论】:

        【解决方案4】:

        你可以使用foreach

          foreach (var item in duplicates)
                    {
                        if (item.sFolder == myObject.sFolder )
                        {
                            // Do stuff
                            break;
                        }
                    }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-02-02
          • 1970-01-01
          • 2017-08-10
          • 2023-03-26
          • 2021-09-18
          • 1970-01-01
          • 2018-03-08
          相关资源
          最近更新 更多