gpt4 book ai didi

c# - 过滤重复行

转载 作者:行者123 更新时间:2023-11-30 18:14:12 25 4
gpt4 key购买 nike

我这里有一段代码:

var grouped = nonGrouped.GroupBy(x => new
{
x.Id,
x.Col1,
x.Col2
}).Select(x => new MyDbTable
{
Id = x.Key.Id,
VALUE = x.Sum(y => y.Value),
Col1 = x.Key.Col1,
Col2 = x.Key.Col2
}).ToList();

//Filter out rows with the same Col1/Col2 combination
var dbTableList = new List<MyDbTable>();
grouped.ForEach(x =>
{
if (!dbTableList.Any(a => a.Col1 == x.Col2 && a.Col2 == x.Col1))
{
dbTableList.Add(x);
}
});

我想删除注释“//Filter out rows with the same Col1/Col2 combination”下的代码,并以某种方式将此功能添加到注释上方的 LINQ 语句中

最佳答案

我认为您正在寻找 grouped 列表的自定义不同值

class MyDbTableComparer : IEqualityComparer<MyDbTable>
{
public bool Equals(MyDbTable x, MyDbTable y)
{
if (x.Col1 == y.Col2 && x.Col2 == y.Col1) return true;
return false;
}
}

然后,将上面的语句更改为:

.Select(x => new MyDbTable
{
Id = x.Key.Id,
VALUE = x.Sum(y => y.Value),
Col1 = x.Key.Col1,
Col2 = x.Key.Col2
}).ToList().Distinct(new MyDbTableComparer());

但我不知道如果在 ToList() 之前使用 Distinct() 是否会正常工作

关于c# - 过滤重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50759062/

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