У меня есть 2 части API, которые имеют некоторые общие черты, но работают по-разному.В настоящее время я пытаюсь взять данные из объекта списка людей из класса B и добавить эти данные в список людей, созданных из класса A (надеюсь, достаточно хорошо объяснено?)
Структура People в 2 классахна самом деле то же самое:
[XmlRoot(ElementName = "people")]
public class People
{
[XmlElement(ElementName = "member")]
public List<Member> Member { get; set; }
}
[XmlRoot(ElementName = "member")]
public class Member
{
[XmlElement(ElementName = "firstName")]
public string FirstName { get; set; }
[XmlElement(ElementName = "lastName")]
public string LastName { get; set; }
[XmlAttribute(AttributeName = "memberId")]
public string MemberId { get; set; }
[XmlAttribute(AttributeName = "memberNotes")]
public string Notes { get; set; }
[XmlElement(ElementName = "departed")]
public string Departed { get; set; }
[XmlElement(ElementName = "currentPosition")]
public Name CurrentPosition { get; set; }
}
При нормальной работе следующий код очень хорошо устанавливает список людей:
public People PersonData { get; set; }
...
....
var results = ApiA.People;
PersonData = results.Member; //during normal operation only one entry of member is returned
Однако в другой операции результаты возвращают список объектов-членов Larger, поэтому яя пытаюсь добавить к тому же списку, чтобы гарантировать, что обработка позже использует один метод для обеих операций из-за одной и той же структуры данных, я пытаюсь сделать следующее:
if(PersonData == null)
PersonData = new API_A.People();
var results = ApiB.People; //person data here belongs to API_B.Person
foreach (var res in results)
{
if (res?.Member != null)
{
if (PersonData == null)
{
PersonData.Member.AddRange(res.People.Member.Cast<API_A.Member>());
break;
}
else
PersonData.Member.Union(res.People.Member.Cast<API_A.Member>());
}
}
Никаких ошибок не возвращаетсяно во время работы я постоянно получаю NullReferenceException
во время операции добавления диапазона;так как я все еще учусь, я был бы очень признателен за понимание того, что я делаю здесь неправильно?