Как я могу вернуть все значения «Title» для определенного «Author» с помощью linq?
<Details xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Record>
<Author>Barry White</Author>
<Title>First Book</Title>
</Record>
<Record>
<Author>Barry White</Author>
<Title>Second Book</Title>
</Record>
<Record>
<Author>Norman White</Author>
<Title>Second Book</Title>
</Record>
</Details>
0
matinau
11 Янв 2014 в 04:24
2 ответа
Лучший ответ
var xDoc = XDocument.Load("Input.xml");
var author = "Barry White";
var titles = (from r in xDoc.Root.Elements("Record")
let _author = (string)r.Element("Author")
let _title = (string)r.Element("Title")
where _author == author
select _title).ToList();
Или используя запрос на основе метода:
var titles = xDoc.Root.Elements("Record")
.Where(r => (string)r.Element("Author") == author)
.Select(r => (string)r.Element("Title"))
.ToList();
2
MarcinJuraszek
11 Янв 2014 в 00:32
Вы можете использовать LINQ to XML < / а>:
var titles = XDocument.Parse(inputxml)
.Descendants("Record")
.Where(x => x.Element("Author").Value == "Barry White")
.Select(x => x.Element("Title").Value)
.ToList();
2
Konrad Kokosa
11 Янв 2014 в 00:32
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.