LINQ: помощь в покрытии foreach внутри foreach для LINQ - если это возможно - PullRequest
1 голос
/ 20 марта 2011

У меня есть foreach, который находится в пределах foreach, и я хотел бы преобразовать его в LINQ.Если бы это был всего лишь 1 раз, я мог бы использовать Где, но я в замешательстве. Вот мой код, любая помощь действительно приветствуется.

В основном мне нужно найти счет, но это зависит от метаданных, которые на 2 уровня ниже,Я думаю, что код не требует пояснений.

currentMetaData >>> Is created outside of the foreach code 
its an object...but the code below works..

foreach (var item in this.invoices.Items)
{
  foreach (var metaData in item.MetaDatas)
  {
    if (metaData == currentMetaData)
    {
      name = item.Name;
      break;
    }
  }
}

Я бы очень хотел сократить его с помощью LINQ.Это возможно?

1 Ответ

1 голос
/ 20 марта 2011

Это даст все имена

 var name = 
             from i in this.invoices
             from m in i.Metadata
             where m == currentMetadata
             select i.Name;

Только первое значение для имитации оператора break; в существующем цикле.

 string name = 
             (from i in this.invoices
             from m in i.Metadata
             where m == currentMetadata
             select i.Name).First();
...