【问题标题】:LINQ 3 times nested foreach and get value from middle loopLINQ 3 次嵌套 foreach 并从中间循环中获取值
【发布时间】:2018-10-01 09:53:23
【问题描述】:

在我的应用程序中,我有行 ID,我需要检索拥有该行的字段 ID。

在foreach中我会这样写:

Field ownerField;

foreach (Sparter sparter in account.GetSparters())
{
    foreach (Field field in sparter.GetFields())
    {
        foreach (Row row in field.GetRows())
        {
            if (row.Id == rowId)
            {
                ownerField = field;
            }
        }
    }
}

但是我如何在 LINQ 中编写这个?我认为它应该是这样的,但这是不正确的:

Field field = account.GetSparters()
    .SelectMany(s => s.GetFields()
    .Find(f => f.GetRows()
    .Where(r => r.Id.Equals(rowId))));

【问题讨论】:

  • 是否只有一条具有该 ID 的记录?
  • @GiladGreen 是的,该行的 id 是唯一的

标签: c# linq foreach


【解决方案1】:

类似的东西:

Field field = account.GetSparters()
    .SelectMany(s => s.GetFields())
    .FirstOrDefault(f => f.GetRows()
                      .Any(r => r.Id == id)
     );

【讨论】:

  • 谢谢!那行得通。我现在注意到我把 ')' 放错了
猜你喜欢
  • 2017-05-03
  • 1970-01-01
  • 2015-04-12
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 2023-04-11
  • 2015-05-02
相关资源
最近更新 更多