0

次のようなオブジェクトを含むオブジェクトリストがあります。

Userobject{
    username
    userage
...
    userrolesList // is a List<userrole>
}

userrole{
    rolid
    rolname
    rolcommission
}

userrolesListは 1 つ以上持つことができますuserroleobjects

このリストを別のシステムに送信する必要がありますが、別のシステムは次のようなオブジェクトのリストしか受け入れません。

Userobject{
    username
    userage
...
    userroleobject // is a userrole object
}

userrole{
    rolid
    rolname
    rolcommission
}

この場合、1 人のユーザーが 10 個のロールを持っている場合、10 個の異なるオブジェクトを他のシステムに送信する必要があります。これを簡単に作成し、パフォーマンスに影響を与えないようにする方法はありますか?

4

2 に答える 2

1

これは、LINQ クエリ構文を使用すると非常に簡単です。

var results = from user in userObjects
              from role in user.UserRolesList
              select new OtherSystemUserObject
              {
                  UserAge = user.UserAge,
                  UserName = user.UserName,
                  UserRole = role
                  // other mapping stuff...
              };
于 2016-10-20T02:54:43.123 に答える
0

あなたがやろうとしていることはあまり論理的ではありません、友よ。ただし、私の頭に浮かぶのは、送信する必要があるクラスモデルを使用してクラスを作成し、userrolelist各要素を単一のuserroleオブジェクトにキャストすることを繰り返すことができるということです。このような:

for(int i = 0; i < userobject.userroleslist.Count ; i++)
{
    var userrole = userobject.userroleslist[i];
    //  Map your object with this userrole variable
}
于 2016-10-20T03:01:12.527 に答える