2016-07-14 66 views
1

甚至不知道我知道如何给这个问题的正确标题...如何填充一个嵌套列表类使用LINQ

我有一个类:

〜1中的DLL

namespace ServerEnd 
{ 
    class A 
    { 
     string field1 {get; set;} 
     List<B> Nested {get;set;} 
    } 

    class B 
    { 
     string field1 { get; set;} 
    } 
} 

〜在第二DLL

namespace ClientEnd 
{ 
    class A 
    { 
     string field1 {get; set;} 
     List<B> Nested {get;set;} 
    } 

    class B 
    { 
     string field1 { get; set;} 
    } 
} 

现在,如果我要填充与客户端我会用THI服务器对象的对象s:

var test = new ServerEnd.A(); 
test.field1 = "a test"; 
test.Nested = new ServerEnd.A.B(); 
test.Nested.Add(new(){field1 = "hi1" } ; 

var clientModel = from x in test 
    select new ClientEnd.A 
     { 
      field1 = x.field1, 
      * what do i put here to transpose data from list object *     
     }; 

但是,如何填充从服务器到客户端的列表?

希望这个很清楚吗?

谢谢

+0

这看起来很像一个序列化和反序列化 – meJustAndrew

回答

4

可以使用LINQ构建ClientEnd.B对象

var clientModel = from x in test 
     select new ClientEnd.A 
      { 
       field1 = x.field1, 
       Nested = x.Nested 
          .Select(a=>new ClientEnd.B{ field1=a.field1 }).ToList()     
      }; 
+0

啊!那是我以后的事 - 谢谢! –

1

我假设你可以使用它与属性相同。

Nested = x.Nested; 

如果你想创建一个单独的列表,你可以只使用ToList()所以它会创造一个又一个:

Nested = x.Nested.ToList(); 
+0

嗨,我其实说错了我的问题,但你的回答给了我一个线索来解决它。当你回答我问的问题我接受 - 谢谢 –

+0

“ServerSide.B”和“ClientSide.B”的类型不一样,他们只是有相同的属性,所以不认为这会工作 – konkked