У меня возникли проблемы с добавлением подэлементов с объектов AddressElement
Мой тестовый класс:
public class AddressElement
{
public AddressElement[] AddressElement1 { get; set; }
public string PostIndex { get; set; }
}
Мой тестовый интерфейс:
public interface IAddress
{
string PostIndex { get; }
}
private AddressElement CreateAddressElement(IAddress address)
{
return new AddressElement
{
PostIndex = address.PostIndex
};
}
private int startIndex = 0;
private int finalIndex = 5;
Метод получения элементов:
private AddressElement [] GetAddressElements (адреса списка, int startIndex, int finalIndex) {List addressElements = new List();
for (int i = startIndex; i < finalIndex; i++)
{
if (i == startIndex)
{
addressElements.Add(CreateAddressElement(addresses[i]));
if (i != startIndex )
{
AddressElement addressElement = addressElements[startIndex];
addressElements[startIndex].AddressElement1 = new[] { CreateAddressElement(addresses[i]) };
}
I need add all subelements of AddressElement in for cycle: addressElements[startIndex].AddressElement1[startIndex].AddressElement1[startIndex].AddressElement1[startIndex].AddressElement1[startIndex]....
Вы можете сделать это, используя Linq:
private AddressElement[] GetAddressElements(List addresses, int startIndex, int finalIndex) {
return addresses.Skip(startIndex).Take(finalIndex - startIndex).Select(s => CreateAddressElement(s)).ToArray() ;
}
Надеюсь, это поможет вам.