クラス紹介があります。クラスにオブジェクトを作成すると、入力文字列が一意であるかどうかがチェックされます(したがって、オブジェクトの重複は許可されません)。しかし、入力文字列str1が以前に作成されたオブジェクトの文字列と等しいことがわかった場合、新しいオブジェクトを作成したり、単にfalseを返すのではなく、すでに作成されたオブジェクトのプロパティを変更したいと思います。しかし、メソッドにはオブジェクトの名前を知る方法がないため、これを行う方法がわかりません。しかし、私はそれについて何かユニークなことを知っています!どういうわけかそれを呼んで、私がする必要があることをするのにこれで十分であるに違いないと私は感じます。
何か案は?
ありがとう!
クラスは次のとおりです。
public class Referral
{
public class Referral
{
public string URL;
public Dictionary<string, int> Keywords = new Dictionary<string, int>();
private static Dictionary<string, string> URLs = new Dictionary<string, string>();
private int HowManyURLs;
private bool UniqueURL;
private bool UniqueKeyword;
public Referral(string MyURL, string MyKeyword, int MyOccurrences) //Constructor
{
if (HowManyURLs == 0)
{
URL = MyURL;
Keywords.Add(MyKeyword, MyOccurrences);
URLs.Add(MyURL, MyKeyword);
HowManyURLs++;
}
else
{
// RESET FLAGS
UniqueURL = true;
UniqueKeyword = true;
for ( int i = 0; i < HowManyURLs; i++ )
{
if ( URLs.ContainsKey( MyURL ) )
{
// TRIP URL FLAG
UniqueURL = false;
// NOW CHECK KEYWORDS OF URL << THIS IS WHAT I CAN'T DO!
if ( URLs.ContainsKey( MyKeyword ) )
{
// TRIP KEYWORD FLAG
UniqueKeyword = false;
// ADD TO OCCURRENCES
// Referral[MyURL].Occurrences += MyOccurrences;
}
}
}
// IF BOTH FLAGS TRUE
if ( UniqueURL == true && UniqueKeyword == true )
{
URL = MyURL;
Keywords.Add(MyKeyword, MyOccurrences);
URLs.Add(MyURL, MyKeyword);
HowManyURLs++;
}
}
}
}