Добавить дочерний элемент в свойства класса в течение цикла

1

У меня возникли проблемы с добавлением подэлементов с объектов 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]....
Теги:
for-loop

1 ответ

0

Вы можете сделать это, используя Linq:

private AddressElement[] GetAddressElements(List addresses, int startIndex, int finalIndex) {

  return addresses.Skip(startIndex).Take(finalIndex - startIndex).Select(s => CreateAddressElement(s)).ToArray() ; 
}

Надеюсь, это поможет вам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню