按条目数量排序linq

时间:2017-04-04 19:02:13

标签: c# linq-to-entities

我正在尝试根据一列中的条目数对表中的数据进行过滤和排序

|  OrderID  | DateOrdered  | EnteredById |  OtherData  |  OtherData2  |
    -----------------------------------------------------------------------
    |   2       |  2/2/2017    |     4       |  asdf       |      sadfsf  |
    |   3       |  2/3/2017    |     4       |  asdf       |      sadfsf  |
    |   5       |  2/4/2017    |     4       |  asdf       |      sadfsf  |
    |   4       |  2/4/2017    |     3       |  asdf       |      sadfsf  |
    |   1       |  2/2/2017    |     3       |  asdf       |      sadfsf  |

这是一个C#项目,为表设置了一个工作模型(Orders) 我需要使用Linq with Entity来返回一个对象数组,整行,按每个EnteredById输入的顺序数排序,并且只有EnteredById有多个条目的地方。

最后应该是:

encrypt_table = {'a': 'b', 'b': 'c', 'c': 'd', 'd': 'e', 'e': 'f', 'f': 'g', 'g': 'h', 'h': 'i', 'i': 'j', 'j': 'k', 'k': 'l', 'l': 'm', 'm': 'n', 'n': 'o', 'o': 'p', 'p': 'q', 'q': 'r', 'r': 's', 's': 't', 't': 'u', 'u': 'v', 'v': 'w', 'w': 'x', 'x': 'y', 'y': 'z', 'z': 'a'} encrypt_table.update( [(k.upper(),v.upper()) for k,v in encrypt_table.items()] ) # to include upper case letters decrypt_table = {v:k for k,v in encrypt_table.items() } # is just the inverse of the other table def encrypt(string): return "".join( encrypt_table.get(c,c) for c in string ) def decrypt_table(string): return "".join( decrypt_table.get(c,c) for c in string )

我写的代码是一个绝对的混乱,所以我没有在这里发布。有没有人有Linq的秘密答案?

1 个答案:

答案 0 :(得分:2)

var result = objListOrder.GroupBy(o=>o.EnteredById).Where((x,groupid)=> x.Count()>1).SelectMany((x,groupid)=>x).OrderBy(o=>o.EnteredById);