Я пытаюсь напечатать «Название книги, имена авторов» (некоторые книги имеют более одного автора) Ниже Linq код печатает только первого автора. Как распечатать всех авторов, связанных с книгой?Как я могу выполнить цикл Через все элементы в .select statement в Linq
List<string> books = docs.Descendants(name)
.Select(x => new {
Title = (string)x.Element(ns+"TITLE"),
Author = x.Element(ns+"INTEL_AUTH")
})
.Select(x => new {
Title = x.Title,
FirstName = (string) x.Author.Element(ns+"FNAME"),
MiddleInitial = (string) x.Author.Element(ns+"MNAME"),
LastName = (string) x.Author.Element(ns+"LNAME"),
})
.Select(x => string.Format("{0}: {1} {2} {3}",
x.Title,
x.FirstName, x.MiddleInitial, x.LastName))
.ToList();
for (int i = 0; i < books.Count; i++)
{
Response.Write("--" + books[i] + "<BR />");
}
XML Вот код XML. ТЕСТ 1 Джон МЭ Джон SKEET
<INTEL_AUTH ID="10">
<FNAME>JO</FNAME>
<MNAME></MNAME>
<LNAME>JO</LNAME>
<INTEL_AUTH>
</INTEL>
<INTEL>
<TILE> LEARNING LINQ</TITLE>
<INTEL_AUTH ID="2">
<FNAME> SHELLY</FNAME>
<MNAME></MNAME>
<LNAME>SHELLY</LNAME>
<INTEL_AUTH iD="3">
<FNAME>CHRIS</FNAME>
<MNAME></MNAME>
<LNAME>MADISON</LNAME>
</INTEL_AUTH>
</INTEL>
</RECORD>
</XML>
Я хочу выдачу результатов КАК: (НАЗВАНИЕ): Все авторы писавшего, что BOOK
ИСПЫТАНИЕ 1: ДЖОН ДУ, ДЖОН СЕТЬ, JO JO LEARNING LINQ: S HELLY SHELLY, CHRIS MADISON
сообщение часть XML, это будет легче помочь вам –
«Как могу ли я напечатать всех авторов, связанных с книгой? " - by _not_ уничтожить всю структуру с помощью string.Format(). –
Отметьте SelectMany: http://jesseliberty.com/2011/03/22/linq-selectmany/ –