Sorting a multi-dimensional [,] array in C#, composed of integers -


मेरे पास निम्न सरणी है:

  निजी int [,] testSamples = new test samples [ 101,101];  

यह कॉलम 0 से 100 और पंक्ति 0 से 100 के साथ एक रोस्टर का प्रतिनिधित्व करने वाला माना जाता है। इस रोस्टर में, विभिन्न रासायनिक तरल पदार्थ छोड़े गए हैं। जिस व्यक्ति के लिए मैं यह कर रहा हूं वह इस तरह से काम करना चाहता है कि वह कंटेनर का सबसे पहले इसे सबसे अधिक तरल रखे।

तो, मुझे डेटा प्राप्त करना और प्रिंट करना होगा इस तरीके से:

  परीक्षण नमूने [35,40] = 12 टेस्ट नमूने [11,12] = 11 टेस्ट नमूने [92,14] = 10 टेस्ट नमूने [18,3] = 10 टेस्ट नमूने [1,61 ] = 7 ...  

उदाहरण के लिए। मैं कुछ दिनों के लिए इस पर अपना सिर टूट रहा था, मैंने स्टैकवर फ्लो पर यहां कुछ और प्रश्नों को देखा है, लेकिन मैं उनमें से किसी भी काम पर नहीं जा सकता।

क्या कोई तरीका है क्या यह करना चाहिए, या क्या मैं सरणियों को छोड़ देना चाहिए और किसी अन्य तरह के कंटेनर के लिए जाना चाहूँगा, जैसे कि सरणी सूची या सूची आइटम?

यहाँ एक सुझाव है जो मुझे लगता है कि रिचर्ड की तरह काफी है, लेकिन LINQ का उपयोग किए बिना समाप्त होता है।

एक त्वरित स्ट्रक्चर लिखें (ऐसा कुछ भी पहले से मौजूद हो सकता है) जिसमें तीन मान शामिल हैं: x, y , और मूल्य इस तरह से:

<पूर्व> सार्वजनिक संरचना नमूनाः स्लॉट: आईसीओम्पेरेबल & lt; नमूनास्लॉट & gt; {सार्वजनिक इंट एक्स; सार्वजनिक अंतर वाई; सार्वजनिक int मान; सार्वजनिक सैंपल स्लॉट (int x, int y, int मान) {X = x; वाई = y; मान = मान; } सार्वजनिक इंक तुलना करें (नमूना स्लॉट अन्य) {वापसी मान। ComparTo (other.Value); }}

फिर आप अपनी int [,] सरणी को SampleSlot ऑब्जेक्ट्स के किसी भी प्रकार के एक-एक आयामी संग्रह में मिटा सकते हैं; मैं शायद एक सूची & lt; SampleSlot & gt; :

  सूची & lt; SampleSlot & gt; SlotsList = नई सूची & lt; SampleSlot & gt; (); (Int i = 0; i & lt; testSamples.GetLength (0); ++ i) {के लिए (int j = 0; j & lt; test samples.GetLength (1); ++ j) {slotsList.Add (नया नमूना स्लॉट (आई, जे, टेस्ट नमूने [आई, जे])); }} SlotsList.Sort (); // मान लें कि आप अपने आउटपुट को (अवर I = slotsList.Count - 1; i & gt; = 0; -i) के लिए अवरोही क्रम में करना चाहते हैं {नमूना स्लॉट स्लॉट = स्लॉट्सलिस्ट [i]; कंसोल.प्रकाश रेखा ("परीक्षण नमूने [{0}, {1}] = {2}", स्लॉट.एक्स, स्लॉट.ए, स्लॉट.वैल्यू); }  

Comments

Popular posts from this blog

.net - C# List<T>.Find(x=>x.Rectangle.Contains(Point)) FAIL -

iphone - Smoothing a rounded stroke in Core Graphics -

Best practice for URL redirection in ASP.NET web application -