शामिल है, मैं सूची [MyObject] का उपयोग करके संपूर्ण ऑब्जेक्ट की बजाय किसी संपत्ति की तुलना करना चाहता हूं। इसलिए मैं IEquatable [MyObject] का उपयोग करता हूं लेकिन संकलक अभी भी स्ट्रिंग प्रॉपर्टी के बजाय MyObject चाहता है। क्यूं कर?हाउटो ओवरराइड सूची <T> में
यहाँ मैं क्या मिला है:
public class AnyClass
{
public List<AnyOtherClass> MyProperty { get; set; }
public string AnyProperty { get; set; }
public AnyClass(string[] Names, string[] Values, string AnyProperty)
{
this.AnyProperty = AnyProperty;
this.MyProperty = new List<AnyOtherClass>();
for (int i = 0; i < Names.Length; i++)
MyProperty.Add(new AnyOtherClass(Names[i], Values[i]));
}
}
public class AnyOtherClass : IEquatable<string>
{
public AnyOtherClass(string Name, string Values)
{
this.Name = Name;
this.Values = Values.Split(';').ToList();
}
public string Name { get; set; }
public List<string> Values { get; set; }
public bool Equals(string other)
{
return this.Name.Equals(other);
}
}
private void DoSomething()
{
string[] Names = new string[] { "Name1", "Name2" };
string[] Values = new string[] { "Value1_1;Value1_2", "Value2" };
AnyClass ac = new AnyClass(Names, Values, "any Property");
if (ac.MyProperty.Contains("Name1")) //Problem is here...
//do something
}
मैं बस इसे पोस्ट करने वाला था। पहला मैच मिलने पर 'कोई भी' मूल्यांकन बंद कर देगा, जबकि 'कहां' पूरी सूची प्राप्त करने जा रहा है (और संभावित रूप से चलाने में काफी समय लगता है)। –
ठीक है मैं यहां LINQ का उपयोग करने के लिए नेतृत्व करूंगा। – UNeverNo