Patrick Skelton Ответов: 1

Как преобразовать этот запрос LINQ в синтаксис lamda?


Этот фрагмент LINQ-to-XML, который я нашел (Учебники LINQ To XML с примерами | DotNetCurry[^]), кажется, делает именно то, что я хочу. Для согласованности с остальной частью кода, над которым я работаю, я хотел бы выразить его с помощью функций LINQ lamda, а не ключевых слов (т. е. .From() вместо from).

Я признаюсь, что у меня есть реальные проблемы, когда дело доходит до такого рода проблем, хотя я знаю, что это должно быть тривиально. Может ли кто-нибудь сказать мне, как я перевожу следующее, чтобы использовать функции LINQ lamda?

var xmlfromLINQ = new XElement("customers",
            from c in customerlist
            select new XElement("customer",
                new XElement("CustomerId", c.CustomerId),
                new XElement("CustomerName", c.CustomerName),
                new XElement("PhoneNumber", c.PhoneNumber),
                new XElement("Email", c.Email)
                ));


Что я уже пробовал:

Я перепробовал почти все, что мог придумать. Я надеюсь, что перерыв на чай даст мне новое понимание.

1 Ответов

Рейтинг:
12

Maciej Los

Я понятия не имею, что ты имеешь в виду. "стандартные функции C# LINQ"...

Если вы хотите использовать Не по LINQ решение, вы можете циклически перебирать коллекцию клиентов с помощью for или foreach заявление:

List<XElement> nodes = new List<XElement>();
foreach(Customer c in customers)
{
    var node = new XElement(...);
    nodes.Add(node);
}


Если вы хотите использовать LINQ и лямбда-выражения , попробовать это:
List<XElement> nodes = customers
    .Select(x=> new XElement(...))
    .ToList();


Patrick Skelton

Извините, я, конечно, имел в виду функции LINQ lamda. Спасибо за исправление и ответ.

Maciej Los

Всегда пожалуйста.