gpt4 book ai didi

c# - linq query Take() 优先于 Distinct()?

转载 作者:太空狗 更新时间:2023-10-29 22:00:31 26 4
gpt4 key购买 nike

我必须使用 LINQ 选择不同的 1000 条记录。但是当我看到生成的查询需要 1000 条记录并对结果应用 distinct。

IQueryable<TestClass> resultSet = (from w in ......).Distinct().Take(1000);

我的 TestClass 会是什么样子,

public TestClass
{
public string TestPRop { get; set; }
//..has some 20 properties
}

有什么方法可以解决这个问题,将 distinct 应用于结果集,然后从不同的结果集中取 1000?

最佳答案

Distinct 将在拍摄前处理。仔细检查您的 Distinct 是否正常运行。这是一个工作示例:

var dataset = new int[]
{
1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10
};

var query = from o in dataset select o;
var result = query.Distinct().Take(6);

// result = `1,2,3,4,5,6`

我怀疑您的问题与将 distinct 与 SQL 结合使用有关。如果是这样,您还可以使用分组来获得您想要的结果。

var distinctById = from o in query
group o by o.Id into uniqueIds
select uniqueIds.FirstOrDefault();

关于c# - linq query Take() 优先于 Distinct()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32360015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com