gpt4 book ai didi

c# - 如何在 LINQ 中查询 ID-名称对中的重复名称?

转载 作者:太空宇宙 更新时间:2023-11-03 20:09:55 27 4
gpt4 key购买 nike

我有一个返回列表的 LINQ to Objects 查询:

class EmpMasterIDocBuffer
{
public int Index { get; set; }
public Int64 AutoId { get; set; }
public string Buffer { get; set; }
}

它的顺序正确,因此重复的 Buffer 值很容易在网格中可见,但我如何查询它?当 Buffer 重复时,AutoId 也会重复,例如

1 - 弗雷德

2 - 玛丽

2 - 玛丽

3 - 简

4 - 账单

但索引将始终是唯一的。

我删除了 Index,因为这只是我的一个想法,但这是我的实际代码,它返回零项,而我知道至少有三个相同的类。

var docs = ctx.Database.SqlQuery<SapIdocEmployeeNumber>("select AutoId, IDoc.query('data(ZHREMPMASTER/IDOC/ZHRSA_EMPMASTER01000/BUFFER)') AS Buffer from SAPIDocs").Where(i => !string.IsNullOrWhiteSpace(i.EmployeeNumber)).ToList();
var lastDup = docs
//.Where(i => i.AutoId == 42)
.GroupBy(i => i.EmployeeNumber)
.Where(g => g.Count() > 1)
.Select(g => g.Last());

粘贴这个给了我一个线索!我必须只检查前八个字符中的重复项。

最佳答案

...so that duplicate Buffer values will be easily visible in a grid, but how can I query it?

所以你想显示重复项?

您可以使用GroupBy:

var duplicates = buffers
.GroupBy(b => b.Buffer)
.Where(g => g.Count() > 1)
.Select(g => g.First()):

如果您想显示非重复项,请使用 g.Count() == 1

如果你想删除重复项:

var uniques = buffers
.GroupBy(b => b.Buffer)
.Select(g => g.First()):

关于c# - 如何在 LINQ 中查询 ID-名称对中的重复名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20677046/

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