3

我想要两个数组:

  1. SupplierList - 包含我在图表中拥有的每个供应商元素的 int ID,然后对于我在此列表中拥有的每个供应商,都有一个单独的列表
  2. clientList - 包含该确定供应商的客户列表。

所以我想例如拥有:

[12,13,53,165,76]即供应商的 ID 和 supplierList[12]供应商 12 的 clientList。

我试过了:

    public void calculateMetrics (MDG graph)
    {
        ArrayList supplierList = new ArrayList();
        ArrayList clientList = new ArrayList();

        foreach (EA.Package package in modelRepository.Models)
        {
            foreach (EA.Package pack in package.Packages)
            {
                foreach (EA.Connector link in pack.Connectors)
                {
                    int supplier = link.SupplierID;
                    int client = link.ClientID;

                    for(int i=0; i<supplierList.Count; i++)
                    { 
                        if (supplier.Equals(supplierList[i]))
                        {
                            **((ArrayList)clientList((ArrayList)supplierList[i]).Add(client);**



                    supplierList.Add(clientList);

但毫无疑问,它不起作用,但我不知道该怎么做。

4

3 回答 3

4

为什么不创建一个包含客户 ID 列表作为成员变量的供应商对象?这样你只需要一个 List 来直接迭代,它会清理你的代码。

进一步来说:

供应商对象(类) - 具有 ID(整数)、客户(对象)

客户端对象(类)- 具有 ID,也许还有其他属性。

查找对象创建的语法;你会发现在面向对象的环境中,创建对象真的很有帮助!

于 2012-06-28T18:03:11.060 回答
0

您可以设计如下,

Class Supplier
{
    int supplierID;
    List<Client> clientListObj;
    //Additional Details
}

Class Client
{
    int clientID;
    //Additional details
}
于 2012-06-28T18:18:52.653 回答
0

如果您熟悉字典,那我会使用。它将允许您轻松地遍历供应商或客户或特定供应商客户。要清理您的代码,您可以创建一个供应商类和一个客户类。

这是一个简单的例子

Dictionary<int, List<Client>> SuplierClients = new Dictionary<int, List<string>>();

        foreach (KeyValuePair<int, List<Client>> suplierClient in SuplierClients)
        {
            // your supplier id, could even replace it with a Supplier Object.
            Console.WriteLine(suplierClient.Key);
            Console.WriteLine(suplierClient.Value.ToString());
        }
于 2012-06-28T18:19:45.003 回答