के रूप में हैशसेट मैं शेयरपॉइंट वेबपार्ट के लिए कोड को अनुकूलित करने का प्रयास कर रहा हूं। मैं एक पुनरावर्तक नियंत्रण होता है:डेटाशॉट
<asp:Repeater ID="CountryOptionsRepeater" runat="server">
<ItemTemplate>
<option value='<%#Eval("CountryName") %>'><%#Eval("CountryName") %></option>
</ItemTemplate>
</asp:Repeater>
मैं डेटा की मेज
countriesList = countriesList.Distinct<String>().ToList<String>();
countriesList.Sort();
//var noDupsCountriesList = new HashSet<String>(countriesList);
DataTable dt = new DataTable();
dt.Columns.Add("CountryName");
foreach (String countryName in countriesList)
{
DataRow dr = dt.NewRow();
dr["CountryName"] = countryName;
dt.Rows.Add(dr);
}
CountryOptionsRepeater.DataSource = dt;
CountryOptionsRepeater.DataBind();
this.DataBind();
साथ यह भरने कर रहा हूँ वहाँ एक रास्ता सीधे पुनरावर्तक का एक ही विन्यास के साथ डेटा स्रोत के लिए HashSet वस्तु (noDupsCountriesList) बाध्य करने के लिए है, के क्रम में अनुकूलन लाने के लिए?
कुछ की तरह:
//countriesList = countriesList.Distinct<String>().ToList<String>();
//countriesList.Sort();
var noDupsCountriesList = new HashSet<String>(countriesList);
CountryOptionsRepeater.DataMember = "CountryName"; // ??
CountryOptionsRepeater.DataSource = noDupsCountriesList;
CountryOptionsRepeater.DataBind();
this.DataBind();
तुम क्यों DataTable या HashSet आवश्यकता क्यों है? क्या 'CountryOptionsRepeater.DataSource = countriesList;' चाल नहीं है? – paul
बाध्यकारी को सीधे 'हैशसेट <>' पर करना संभव हो सकता है, लेकिन यह आपको वर्णानुक्रम से क्रमबद्ध देशों को नहीं देगा, ताकि आपके कोड से आवश्यक हो। – MiMo
@MiMo, धन्यवाद, मैं 'ऑर्डरबी' कथन जोड़ूंगा (इस धारणा के साथ कि हैशसेट की 'प्रारंभिकता + ऑर्डरबी' सूची <> ''विशिष्ट() + toList() + सॉर्ट()') कॉल करने से कहीं अधिक अनुकूलित है। – Annie