【问题标题】:list contains an ID in linq列表包含 linq 中的 ID
【发布时间】:2011-10-28 12:21:09
【问题描述】:

我正在尝试找到一个 linq 查询,以便将其写在 if 语句中。

伪代码:

IDList 是一个整数列表 List

if (IDList.Contains (Object.Id)) Do something

但我似乎无法弄清楚需要什么。

在非 linq 中这是有效的:

  foreach(int id in IDList )
     {
        if (id == Object.Id)
            break;
     }

但如果可能的话,我希望它成为一条线。

我第一次尝试这个:

IDList.Contains(Object.Id);

但这会引发编译错误

我想知道它应该是这两个之一吗?

  IDList.Any(id => id == Object.Id)

IDList.Exists(id => id == Object.Id);

我不完全了解 lambdas 和事物的工作原理或 andy 和存在之间的区别,所以我不确定我是否走错了路?

【问题讨论】:

  • 你想做什么你能从逻辑上解释,因为这在问题中并不清楚

标签: c# asp.net linq


【解决方案1】:

你可以这样做:

if (MyList.Any(c => c.Id == MyObject.Id)) { }

假设MyList 是一个IEnumerable<T>(或任何从IEnumerable<T> 派生的东西),其中T 是一个对象,它具有一个名为Id 的属性,该属性与@987654327 上的属性Id 的类型相同@实例。

【讨论】:

    【解决方案2】:
     IDList.Any(id => id == Object.Id)
    

    没关系,如果至少存在一个满足您的谓词的元素,它将返回您true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多