Я все еще новичок в LINQ. Можно ли сделать следующее:
например, у меня есть класс:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Теперь я хочу вернуть его как объект класса, прочитав, скажем, содержимое XML-файла и вернув его.
Так что, если я прочитаю это
XML-файл:
<person>
<firstname></firstname>
<lastname></lastname>
</person>
Читатель (скажем, это относится к классу людей):
public static Person ReadPerson(xmlpath)
{
XDocument xd = XDocument.Load(xmlpath);
var person = (from p in xd.Descendants("person")
select new Person
{
FirstName = p.Element("firstname").value,
LastName = p.Element("lastname").value
});
return person as Person;
}
Теперь, если я сделаю следующее в другом месте:
Person p = new Person();
p = People.Person(xmlpath);
Response.Write(p.FirstName);
Здесь p.FirstName возвращает нулевое исключение. Что я понимаю, так это потому, что запрос linq возвратил пустой класс.
Итак, мой вопрос, есть ли способ напрямую добавить материал в класс в запросе и вернуть его БЕЗ запуска цикла foreach и добавления всего вручную ? (вроде следующего:)
Person p = new Person();
foreach (var x in person)
{
p.FirstName = x.FirstName;
p.LastName = x.LastName;
}
Извините, если это глупый вопрос.
Спасибо