LINQ 3 раза вложенный foreach и получить значение из среднего цикла - PullRequest
0 голосов
/ 01 октября 2018

В моем приложении у меня есть идентификатор строки, и мне нужно получить идентификатор поля, которому принадлежит эта строка.

В 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))));

1 Ответ

0 голосов
/ 01 октября 2018

что-то в этом роде:

Field field = account.GetSparters()
    .SelectMany(s => s.GetFields())
    .FirstOrDefault(f => f.GetRows()
                      .Any(r => r.Id == id)
     );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...