Я пытаюсь вернуть только один результат из следующего XML при поиске по UID:Как извлечь значение из XML с помощью LINQ?
<Photos>
<Photo UID="a3d508784ff3456da7bf2ff8ce08e577">
<Date>2014-08-22T14:00:32.7958436+01:00</Date>
<File>a3d508784ff3456da7bf2ff8ce08e577.jpg</File>
<CrimeRef>CR123456/14</CrimeRef>
</Photo>
<Photo UID="735620a99f2c4dfd9f2c1870136e993e">
<Date>2014-08-22T14:07:29.0364635+01:00</Date>
<File>735620a99f2c4dfd9f2c1870136e993e.jpg</File>
<CrimeRef>CR999999/99</CrimeRef>
</Photo>
<Photo UID="c186993e8a0246c29dd180396dfea47b">
<Date>2014-08-22T14:07:29.6835282+01:00</Date>
<File>c186993e8a0246c29dd180396dfea47b.jpg</File>
<CrimeRef>CR999999/99</CrimeRef>
</Photo>
</Photos>
Я использую следующий код для этого:
var fileList = xml.Descendants("Photo")
.Where(e => e.Attribute("UID") != null
&& (string)e.Attribute("UID").Value == ID)
.ToList();
var fileName = fileList[0];
Проблема заключается в том, что FileList [0] имеет весь XML-элемент, а не только имя файла:
есть ли anyw ay просто сделать эквивалент 'select File from' в LINQ, который позволит мне просто вернуть значение «File» для этого элемента? Я пытался делать это, не повезло:
var fileName = fileList[0]['File'];
Большое спасибо
Добавить '.Select (х => (строка) x.Element ("Файл"))' после 'Where' –
Спасибо так много LB! Пожалуйста, добавьте в качестве ответа, и я приму это :) – Nick