3

2つの配列が必要です。

  1. サプライヤーリスト-グラフにある各サプライヤー要素のintIDが含まれ、次にこのリストにあるサプライヤーごとに個別のリストが含まれます
  2. clientList-その決定的なサプライヤのクライアントのリストが含まれています。

だから私は例えば持っていたい:

[12,13,53,165,76]これは、サプライヤのIDとサプライヤ supplierList[12]のclientListです12。

私はそれで試しました:

    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のリストをメンバー変数として含むSupplierObjectを作成してみませんか?このように、直接反復するリストは1つだけで、コードがクリーンアップされます。

すなわち:

サプライヤオブジェクト(クラス)-ID(int)、クライアント(Object)があります

クライアントオブジェクト(クラス)-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

あなたが辞書に精通しているなら、それは私が使うものです。これにより、サプライヤやクライアント、または特定のサプライヤクライアントを簡単に繰り返すことができます。コードをクリーンアップするために、supplierクラスとclientクラスを作成できます。

これが簡単な例です

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 に答える