में एक तुलनात्मक कार्य कैसे करें कहें कि मेरे पास एक सूची में तत्व (एक्स, वाई, और जेड) हैं, मेरे पास एक फ़ंक्शन है, जो एक प्रतिशत उत्पन्न करता है, कितनी दो वस्तुएं एक-दूसरे के समान होती हैं।सी #
मैं आपकी क्या अपेक्षाएं हैं, वाई के खिलाफ एक्स और जेड चलाया जाता है मेरी compareElements का उपयोग कर, तो: एक्स और जेड
compareElements(Y,X); // equals 55
compareElements(Y,Z); // equals 62
तब के खिलाफ
compareElements(X,Y); // equals 55
compareElements(X,Z); // equals 60
फिर वाई वाई और एक्स
के खिलाफ जेडcompareElements(Z,X); // equals 60
compareElements(Z,Y); // equals 62
फिर, मैं सबसे अधिक मूल्य है, जो 62.
है वापसीजाहिर है, वहां कुछ पुनरावृत्ति है, मुझे पुनरावृत्ति की आवश्यकता नहीं है, लेकिन मुझे यकीन नहीं है कि इसे कैसे खत्म किया जाए।
पुनरावृत्ति के बिना, प्रत्येक तत्व पर यह तुलना करने के लिए मैं अपनी LINQ क्वेरी, या फ़ंक्शन/एल्गोरिदम कैसे बना सकता हूं?
यदि मैं कर सकता हूं तो मैं LINQ का उपयोग करना पसंद करूंगा, क्योंकि मुझे एक गणित पारित किया जा रहा है और सूची वास्तव में गणना की जाने से पहले फ़ंक्शन रिटर्न है, इसलिए जब तक सूची की गणना नहीं की जाती है, हम तुलना करने की लागत को बचा सकते हैं । मेरी वास्तविक परिणाम सेट मैं इस सूची में 3 और 10 तत्वों के बीच औसत के साथ काम कर रहा हूँ, भाग गया है कि जरूरत:
सभी मैं की जरूरत है कि उच्चतम मूल्य तुलना कार्यों की, 62.
नोट है इस तुलना समारोह के माध्यम से।
क्या आपके पास एक सूची> या समान है? या आपके पास एक्स, वाई, जेड आइटम कैसे व्यवस्थित हैं? –
क्या आपको यह जानने की भी आवश्यकता है कि किस दो ऑब्जेक्ट का उच्चतम मूल्य हुआ? –
यदि आप केवल उच्चतम तत्व चाहते हैं, तो आप केवल List.Sort() का उपयोग नहीं कर सकते हैं। अंतिम()? –