Linq和实体框架:查找具有相同状态的第一个X数据行

时间:2014-12-23 12:10:32

标签: c# linq entity-framework linq-to-entities

我的数据库中有以下项目:

id           status      changeDate     userId      ....

1            1
2            1
3            1
4            2
5            2
6            3
7            2
8            2
9            1

我需要前两个相同状态项的列表:

预期结果循环1:

id           status      changeDate     userId      ....

1            1
2            1

预期结果循环2:

id           status      changeDate     userId      ....

3            1

预期结果循环3:

id           status      changeDate     userId      ....

4            2
5            2

预期结果循环4:

id           status      changeDate     userId      ....

6            3

预期结果循环5:

id           status      changeDate     userId      ....

7            2
8            2

预期结果循环6:

id           status      changeDate     userId      ....

9            1

每次循环后,找到的结果将被删除。

如何才能获得状态唯一的前两个数据行,或者我希望找到具有重复状态的前x个结果?

1 个答案:

答案 0 :(得分:0)

如果你在每次迭代后删除,也许你可以使用类似的东西:

var nextTwo = yourTable.Take(2).ToArray() ;
var res = 
    nextTwo[0].status == nextTwo[1].status ? 
        nextTwo.Take(2) :
        nextTwo.Take(1);

之后,您可以删除匹配' res'并重复。