【发布时间】:2014-09-26 11:07:13
【问题描述】:
我有一种情况,我从数据库中获取数据的方式是,所有内容都存储在一维数组中。
例如:
User table: UserId, Name
Group table: GroupId, Name
UserGroup table: UserId, GroupId
作为连接这些表的结果,我获得了以下形式的数组:
result[0] = "1" // user id
result[1] = "John Doe" // user name
result[2] = "121" // group id
result[3] = "SomeGroup" // group name
result[4] = "1" // user id
result[5] = "John Doe" // user name
result[6] = "2135" // group id
result[7] = "SomeOtherGroup" // group name
我知道这不是保存数据的好解决方案,但是这些数据来自其他一些我不允许更改的代码,所以我必须处理它。
我的问题是:
- 是否可以使用 LINQ 来解析此数组并将数据放入我自己的对象(其中包含 Groups 集合的用户类)。
- 如果不是 LINQ,还有什么其他最好的方法来处理它?
【问题讨论】:
-
所以一个用户可以属于多个组(在这种情况下会重复用户)。所有用户所属的组是否也对每个用户重复?
-
这是多对多的关系。一个用户可以属于多个组,一个组可以包含多个用户。
-
那么如何区分用户和组?
-
可能仅通过索引和重复模式
-
我只知道查询结果显示了多少列。我知道包含此结果数组的对象的 RowCount 和 ColumnCount 属性。因此,例如要获取我使用的第 i 个记录的组名:result[i * ColumnCount + 3]。