चलें कहना मैं एक सरणीक्या LINQ इंडेक्स पर काम करता है?
byte[] myarr = {1,4,3,4,1,2,1,2,4,3,1,4,2};
myarr लंबाई 13 (0-12 सूचकांक) जो भी पूर्णांक [] वैल की लंबाई हो जाएगा का होगा।
int[] val = new int[13];
मैं अपनेarr की अनुक्रमणिका जांचना चाहता हूं जहां इसका मूल्य 4 iee 1,3,8,11 है।
तो मैं चाहता हूँ ऐसा करने का
val[1]++;
val[3]++;
val[8]++;
val[11]++;
एक तरह से पाश के लिए उपयोग कर रहा है
for(int i=0; i<myarr.length; i++)
{
if(myarr[i] == 4)
val[i]++;
}
हम Array.indexof उपयोग कर सकते हैं, लेकिन यह जिसका अर्थ है कि मूल्य नहीं है मूल्य के पहले सूचकांक रिटर्न अद्वितीय हो और मेरे myarr में बहुत सारे मूल्य हैं।
क्या यह linq का उपयोग करके किया जा सकता है?
int[] newIndices = myarr.Select((i, index) => new { Index = index, Value = i })
.Where (x => x.Value == 4)
.Select(x => x.Index + 1)
.ToArray();
संपादित:
आप LINQ के बारे में क्यों परवाह करेंगे? आप काम कर रहे उदाहरण पूरी तरह से सरल है। इसके अलावा, मुझे लगता है कि आप LINQ से प्राप्त कर सकते हैं कि सबसे अच्छा वास्तविक मूल्य होगा ... फिर भी आपको इसे बढ़ाना होगा और इसे वापस सरणी – musefan
पर फिर से असाइन करना होगा LINQ में 'क्यू' क्वेरी के लिए खड़ा है। LINQ का प्रयोग * क्वेरीिंग * डेटा के लिए किया जाता है। आप * डेटा * बदलना चाहते हैं। लूप के लिए आपका यह तरीका है। –
@ ग्राहमक्लर्क: LINC के लिए संभावित विचार? .... अंदर कौन है? – musefan