1

以下が必要です (簡潔にするために、ここではタイプとして文字列を使用しています)。

MyDictionary : IDictionary<string, List<string>>
{
    private readonly Dictionary<string, List<string>> _collection;
    ...
    // The collection cannot contain the key
    public void Add(string key, List<string> value)
    {
        _collection.Add(key, new List<string>(value.RemoveAll(p => p == key));
    }
}

したがって、使用中は次のようになります。

string myName = "Superstringcheese";
List<string> myFriends = new List<string> {"John", "Jane", "Jerry"};

string yourName = "Someone";
List<string> yourFriends = new List<string> {"John", "Bill", "Ted"};

var myDic = new MyDictionary();

// It's okay that each of us (each key) has some friends that are the same. It's not okay for me to have myself as a friend. The add method would check if the key is contained by the value collection and remove it if necessary.
myDic.Add(myName, myFriends);
myDic.Add(yourName, yourFriends);

ホイールを再発明する前に、これを行うネイティブ コレクション タイプはありますか、それとも一般的な実装を知っている人はいますか?

4

1 に答える 1

1

さて、私はこのビットを助けることができます:

これを行うネイティブ コレクション型はありますか?

いいえ。

于 2012-04-23T14:45:42.987 に答える