2016-12-01 8 views
-4

Представьте себе, что у меня есть классы, как нижеКак скопировать данные из одного класса в другой

public class A 
{ 
    public int a; 
    public B [] b; 
} 

public class B 
{ 
    public int a; 
    public int b; 
} 
------------------------- 
public class C 
{ 
    public int a; 
    public D [] b; 
} 

public class D 
{ 
    public int a; 
    public string b; 
} 

Как скопировать данные класса С-А? Это просто, но из-за списка (B [], D []), я не знаю?

+1

как насчет [Automapper] (https://www.nuget.org/packages/AutoMapper/)? – meJustAndrew

+0

Без простой установки значений C в значения A? Как * a.a = c.a *? –

+0

@StinkyTowel: !!!! пожалуйста, проверьте тип данных, и что подано в список – SajjadZare

ответ

2

Чтобы сохранить его простым и ответить на ваш вопрос, вот код, необходимый. Ожидаемые проблемы? Я прокомментировал ту линию, с которой я скептически отношусь, надеюсь, что вы рассматриваете другой дизайн, потому что этот дизайн несколько напоминает рецепт катастрофы.

Этот ответ, однако, должен установить вас на правильном пути, вы можете осуществить дальнейшие пустые ошибки &.

public class A 
{ 
    public int a; 
    public B[] b; 

    public A() 
    { 

    } 
    public A(C c) 
    { 
     a = c.a; 
     b = c.b.Select(p => new B 
     { 
      a = p.a, 
      b = int.Parse(p.b) // What if p.b isn't a valid, parsable integer? 
     }).ToArray(); 
    } 
} 

public class B 
{ 
    public int a; 
    public int b; 
} 

public class C 
{ 
    public int a; 
    public D[] b; 
} 

public class D 
{ 
    public int a; 
    public string b; 
} 
0

сделать класс общественности и сделать ваши переменные свойства с

public int a { get; set; } 

Теперь вы можете позвонить C.a из класса А

+0

проверьте вопрос сейчас пожалуйста – SajjadZare

+1

посмотрю. Наверное, я смущен тем, что вы действительно хотите сделать, если это не решит вашу проблему. –

+0

это просто, но из-за списка (B [], D []), я не знаю? – SajjadZare