Ich habe eine Klasse Referrals. Wenn Sie ein Objekt in der Klasse erstellen, überprüft es, ob die Eingabezeichenfolgen eindeutig sind (und daher keine doppelten Objekte zulassen). Aber wenn ich finde, dass die Eingabezeichenfolge str1 gleich der eines zuvor erstellten Objekts ist, anstatt ein neues Objekt zu erstellen oder einfach nur false zurückzugeben, möchte ich eine Eigenschaft des bereits erstellten Objekts ändern. Aber ich kann nicht herausfinden, wie das geht, da die Methode den Namen des Objekts nicht kennt. Aber ich weiß etwas Einzigartiges darüber! Ich habe das Gefühl, dass dies genug sein muss irgendwie nennen Sie es, und tun, was ich tun muss.C# Call-Objekt von einzigartigen Eigenschaft
Irgendwelche Ideen?
DANKE! Hier
ist die Klasse:
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++;
}
}
}
}
Ich bin ein bisschen verwirrt über das, was Sie versuchen, wenn es um Ihre Frage und Ihren Code geht. Zum einen ist dies keine Methode, es ist ein Konstruktor, daher ist die Rückgabe von false keine Option und das Erstellen eines neuen Verweises ist keine Option. Auch Ihre For-Schleife erscheint, führen Sie die gleichen Prüfungen jedes Mal durch die Schleife ohne Änderungen durch. Sollte Ihre Sekunde, wenn sein: if (Keywords.ContainsKey (MyKeyword)) ? – drs9222