बहुत संक्षिप्त प्रश्न। मेरे पास एक यादृच्छिक रूप से क्रमबद्ध बड़ी स्ट्रिंग सरणी (100K + प्रविष्टियां) है जहां मैं वांछित स्ट्रिंग का पहला मौका ढूंढना चाहता हूं। मेरे पास दो समाधान हैं।- प्रदर्शन बनाम भविष्य
पढ़ने के बाद मैं क्या अनुमान लगा सकता हूं कि 'लूप' वर्तमान में थोड़ा बेहतर प्रदर्शन करने जा रहा है (लेकिन यह मार्जिन हमेशा बदल सकता है), लेकिन मुझे linq संस्करण भी अधिक पठनीय लगता है। संतुलन पर कौन सी विधि को आम तौर पर वर्तमान सर्वोत्तम कोडिंग अभ्यास माना जाता है और क्यों?
string matchString = "dsf897sdf78";
int matchIndex = -1;
for(int i=0; i<array.length; i++)
{
if(array[i]==matchString)
{
matchIndex = i;
break;
}
}
या
int matchIndex = array.Select((r, i) => new { value = r, index = i })
.Where(t => t.value == matchString)
.Select(s => s.index).First();
संबंधित: [बनाम फोरैच बनाम LINQ] (http://programmers.stackexchange.com/questions/178218/for-vs-foreach-vs-linq) – sloth
मैं इस में LINQ का भी उपयोग नहीं करता मामला, क्योंकि आपको वास्तव में इंडेक्स खोजने के लिए लड़ना है - मैं 'Array.IndexOf' का उपयोग करता हूं :) – Rawling
मैं किसी भी प्रदर्शन समस्या के बिना बड़े डेटाटेबल्स (100k + रिकॉर्ड्स, ~ 40 कॉलम) पर LINQ का उपयोग करता हूं। – Teejay