दोस्तों, मेरे पास एक सूची है:
var filenames = नई सूची & lt; स्ट्रिंग & gt ; {"150_A_1_A", "150_A_1", "14 9_2", "14 9_1", "150_1_A", "150_A_2", "150_2_A"};
और मुझे निम्न सूची प्राप्त करने के लिए इस सूची को सॉर्ट करने की आवश्यकता है:
149_1 149_2 150_1_A 150_2_A 150_A_1 150_A_1_A
पूर्व>कोई विचार? धन्यवाद
उसकी एक LINQ अभिव्यक्ति है जिसे आप की आवश्यकता है:
var X = फाइलनाम। चयन करें (s = & gt; नया {value = s, splitted = s.Split ('_')})। क्रमबी (s = & gt; int.Parse (s.splitted [0])); के लिए (int i = 1; i & lt; x.max (s = & gt; s.splitted.Length); i ++) {var इस आई = i; X = x.ThenBy (s = & gt; यह I & gt; = s.splitted.Length? नल: s.splitted [यह आई]); } Var सॉर्ट किया गया = x.Select (s = & gt; s.value);
सबसे पहले मैंने '_'
द्वारा स्ट्रिंग्स को विभाजित किया है, फिर मैं संख्यात्मक रूप से पहले फ़ील्ड को सॉर्ट करता हूं।
अंत में मैं सभी रीमाईंग फ़ील्ड वर्णानुक्रम से सॉर्ट करता हूं
Comments
Post a Comment