उन है कि अभी भी नेट 2 में "अटक जाने" कर रहे हैं के लिए ...
मेरी कक्षा सरणी संरचना ...
public class EmployerContactDetailsClass
{
public string wsStudentID { get; set;}
public string wsOrgID { get; set;}
public string wsContactID { get; set;}
public string wsContactName { get; set;}
public string wsContactEmail { get; set;}
public string wsEmployerEmail { get; set;}
public bool wsUserChoiceVerifier { get; set;}
}
मैं इस वर्ग wsStudentID == 'somevalue'
का उपयोग कर एक पारित कर दिया सूचकांक मूल्य के आधार पर में एक विशिष्ट तत्व लगाना चाहते हैं।
पहले एक सूची सरणी
List<EmployerContactDetailsClass> OrgList = new List<EmployerContactDetailsClass>();
अगला एक एकल नोड तत्व
EmployerContactDetailsClass OrgElem = new EmployerContactDetailsClass();
कुछ डेटा स्रोत से अपनी सूची का निर्माण (मेरे मामले एक रीडर वस्तु)
OrgElem.wsOrgID = reader["OrganisationID"].ToString(); //Org ID from database
OrgElem.wsContactID = reader["ContactID"].ToString(); //Contact ID from employer database
OrgElem.wsUserChoiceVerifier = (bool)reader["UserChoiceVerify"]; //boolean by default
if (reader["ContactGivenName"].ToString() != string.Empty && OrgElem.wsUserChoiceVerifier)
OrgElem.wsContactName = reader["ContactGivenName"].ToString() + " " + reader["ContactFamilyName"].ToString();
else
OrgElem.wsContactName = "TO WHOM IT MAY CONCERN";
OrgElem.wsContactEmail = reader["ContactEmail"].ToString(); //"[email protected]";
OrgElem.wsEmployerEmail = reader["OrganisationEmail"].ToString(); //"[email protected]";
//now add the elements into the array class
OrgList.Add(OrgElem);
बनाते हैं सूची <> को एक ऐरे में कनवर्ट करें []
EmployerContactDetailsClass[] OrgListArray = (EmployerContactDetailsClass[])OrgList.ToArray();
Delegate
का उपयोग कर सरणी में दिए गए छात्र आईडी को खोजें।
String wsStudentID = 'FIND007'; //with respect to Roger Moore RIP
EmployerContactDetailsClass OrgElemFound = Array.Find(OrgListArray, ByStudentID(wsStudentID));
और विधेय अपने कोड पर कहीं और विधि ...
//predicate method to return true or f if studentID matches the array list (used to pass into SendEmail)
private Predicate<EmployerContactDetailsClass> ByStudentID(string wsStudentID)
{
return delegate(EmployerContactDetailsClass OrgElem)
{
return OrgElem.wsStudentID == wsStudentID;
};
}
चीयर्स!
बस FYI यदि आप .NET के किसी संस्करण के लिए प्रतिबंधित हैं जो LINQ का उपयोग नहीं कर सकता है तो यह अत्यधिक संभावना नहीं है कि आप 'Array.Find() '... ऑब्जेक्ट मिली = Array के पूर्वानुमान के लिए लैम्ब्डा अभिव्यक्ति वाक्यविन्यास का उपयोग करेंगे। खोजें (myArray, प्रतिनिधि (MyType o) {वापसी o.Foo == कुछ वैल्यू;}); ' –
@ क्विंटिन पॉइंट लिया गया और बहुत सच – BrokenGlass