我正在使用C#和LINQ并尝试组合两组数据。第一个是特定类型的列表,让我们调用此状态(列表),它只是一个具有一堆属性的类,其中一个属性包括逗号分隔的帐户值列表。这是使用存储过程从应用程序数据库中查询的,因此我对此处显示的内容有一些灵活性
例如:
class Status
{
...
public string Accounts {get; set;} (ie. "abcde, qwerty, asdfg")
public string Managers {get; set;}
...
}
其他属性无关紧要,因为这是我加入的唯一字段。
第二个“帐户”数据集来自我打电话的网络服务,以获取“帐户”列表以及与每个帐户关联的人员。
例如:
Account Manager SomeData MoreFields ...
------- ------------------- -------- ---------- ---
abcde Bob Marley Data MoreData ...
qwerty Fred Flinstone Data MoreData ...
因此,我需要在Status的Managers属性中的Accounts数据集中创建一个Status对象列表,其中包含Manager的一个CSV列表。问题是我无法控制此数据集中的什么是retruend,因为它是第三方应用程序。所以我需要找到一些方法来做到这一点,而无需修改“帐户”数据。除非我从Web服务获取数据集后在内存中执行某些操作。
我希望这是有道理的,我提前感谢你了!
答案 0 :(得分:0)
您说的这个“数据集”是什么?我不在乎它来自何处 - 我只关心它在C#中是什么类型的对象。
我将假设它是一个ICollection,称为“帐户”
接下来,我将假设Managers是一个CVS列表,就像Accounts。
此外,我只会创建一个状态对象而不是它们的“列表”,因为你永远不会说出一个状态与另一个状态的区别。
var status = new Status();
status.Accounts = string.Join( ", ", from k in accounts select k.Account);
status.Managers = string.Join( ", ", from k in accounts select k.Manager);