我對LINQ
相對較新,目前正在處理將分組和排序相結合的查詢。我將從這裏開始一個例子。基本上我有字符串表示的數字的任意序列:結合分組和排序的LINQ查詢
List<string> sNumbers = new List<string> {"34521", "38450", "138477", "38451", "28384", "13841", "12345"}
我需要找到所有sNumbers
在這個列表中包含的搜索模式(比如「384」) 然後返回過濾序列使得sNumbers
那首先搜索模式(「384」)首先排序,然後是其餘sNumbers
,其中包含某處的搜索模式。因此,這將是這樣的(請注意,在該組中的字母排序):
{"38450", "38451", "13841", "28384", "138477"}
這是我如何開始:
outputlist = (from n in sNumbers
where n.Contains(searchPattern
select n).ToList();
所以,現在我們已經包含搜索所有號碼模式。這就是我被卡住的地方。我知道在這一點上我需要將結果分成兩個序列。一個以搜索模式開始,另一個則不然。然後按字母順序在每個組中應用次要排序。我如何編寫一個結合了所有這些的查詢?
對不起,通過響應看完之後,我意識到我犯了上述錯誤的正確答案應該是。如下所示:(按開頭和按字母順序排序(不是數字) {「38450」,「38451」,「13841」,「138477」,「28384」} –