需要帮助将c# foreach循环转换为lambda

本文关键字:循环 转换 lambda foreach 帮助 | 更新日期: 2023-09-27 17:50:43

是否可以使用IQueryable, IEnumerable或lambda表达式来实现以下循环

private bool functionName(int r, int c)
{
    foreach (S s in sList)
    {
        if (s.L.R == r && s.L.C == c)
        {
            return true;
        }
    }
    return false;
}

如果是,如何?

需要帮助将c# foreach循环转换为lambda

尝试:

private bool functionName(int r, int c)
{
    return sList.Any(s => s.L.R == r && s.L.C == c);
}

Linq中的Any扩展方法适用于IEnumerable序列(例如可以是List),如果序列中的任何项对于给定的谓词(在本例中是Lambda函数s => s.L.R == r && s.L.C == c)返回true,则返回true。

类似于

return sList.Any(s => s.L.R == r && s.L.C == c);

由于您应该提供有关您使用的类(slr ?? ?)的更多信息,并且我不知道您真正想要的函数结果是什么,因此这不是100%确定:

return sList.Any(s => s.L.R == r && s.L.C == c);

/e:看来我有点晚了,对不起,伙计们。

一个例子

private bool functionName(int r,int c)
{
  var ret = from s in sList where s.L.R==r&&s.L.C==c select s;
  return ret.Count()>0;
}