0

ディペンデンシー グラフを作成中ですが、ディペンデンシーとディペンディを適切に追加するのに問題があります。

私はそれを次のように設定しました:

private List<Tuple<string, string>> DG;
private Dictionary<string, List<string>> dependants;
private Dictionary<string, List<string>> dependees;

そして、私は自分の辞書に次のように追加しようとしています:

for (int i = 0; i < DG.Count; i++)
{
    dependants.Add(DG[i].Item1, new List<string>().Add(DG[i].Item2);
}

2 番目のパラメーターで新しいリストに追加しようとすると、「Argument2: void から System.Collections.Generic.List に変換できません」というエラーが表示されます。エラーが発生する理由はわかっていると思いますが、辞書に正しく追加する別の方法を考えるのに苦労しています。

私の目標は次のようなものです:

//DG = {("a", "b"), ("a", "c"), ("b", "d"), ("d", "d")}
//     dependents("a") = {"b", "c"}
//     dependents("b") = {"d"}
//     dependents("c") = {}
//     dependents("d") = {"d"}
//     dependees("a") = {}
//     dependees("b") = {"a"}
//     dependees("c") = {"a"}
//     dependees("d") = {"b", "d"}

したがって、("a", "b") は、"b" が "a" の従属であり、"a" が "b" の従属であることを意味します。

4

1 に答える 1

1

あなたのコードより少し長いですが、これはあなたが必要とするものかもしれません:

for (int i = 0; i < DG.Count; i++)
{
    if (!dependants.ContainsKey(DG[i].Item1)) 
    {
        List<string> temp = new List<string>();
        temp.add(DG[i].Item2); 
        dependants.Add(DG[i].Item1, temp);
    }
    else
        dependants[DG[i].Item1].Add(DG[i].Item2);
}

長いコードがフローの理解に役立つことを願っています。これは依存関係を作成するためだけです。また、元のコードに括弧の終わりがありませんでした:

dependants.Add(DG[i].Item1, new List<string>().Add(DG[i].Item2);

する必要があります

dependants.Add(DG[i].Item1, new List<string>().Add(DG[i].Item2));
于 2016-09-13T03:55:21.140 に答える