【发布时间】:2016-05-24 05:53:01
【问题描述】:
我对@987654321@ 比较陌生,目前正在研究一个结合了分组和排序的查询。我将从这里的一个例子开始。基本上我有一个表示为字符串的任意数字序列:
List<string> sNumbers = new List<string> {"34521", "38450", "138477", "38451", "28384", "13841", "12345"}
我需要在此列表中找到所有包含搜索模式(例如“384”)的sNumbers
然后返回过滤后的序列,使得以搜索模式(“384”)开头的sNumbers首先排序,然后是包含搜索模式的剩余sNumbers。所以它会是这样的(请注意组中的字母排序):
{"38450", "38451", "13841", "28384", "138477"}
我是这样开始的:
outputlist = (from n in sNumbers
where n.Contains(searchPattern
select n).ToList();
所以现在我们有了所有包含搜索模式的数字。这就是我卡住的地方。我知道此时我需要将结果“分组”为两个序列。一个以搜索模式开头,另一个不以搜索模式开头。然后按字母顺序在每个组中应用辅助排序。我如何编写一个结合所有这些的查询?
【问题讨论】:
-
对不起,看完回复后,我意识到我犯了上面的错误。正确答案如下:(按开头排序,然后按字母顺序(非数字){“38450”、“38451”、“13841”、“138477”、“28384”}