我有一个属性为Items
的课程Id, Name, Action
。
Items
列表中填充了重复的项目。
例如:
1 Item1 IT00001 Insert
2 Item1 IT00001 Delete
3 Item3 IT00003 Insert
4 Item4 IT00004 Update
如何使用linq删除列表中的重复项?这样我的输出就是
3 Item3 IT00003 Insert
4 Item4 IT00004 Update
答案 0 :(得分:0)
下面的代码返回一个新列表,其中包含与Name属性相关的不同项:
public class Test
{
public int Id;
public string Name;
}
public class TestNameComparer : IEqualityComparer<Test>
{
public bool Equals(Test x, Test y)
{
if (x == null) return y == null;
return x == y || string.Equals(x.Name, y.Name);
}
public int GetHashCode(Test obj)
{
return obj.Name.GetHashCode();
}
}
和电话:
//List<Test> list = ...;
var distinct = list.Distinct(new TestNameComparer());
因此,根据您在计算不同值时要考虑的属性(甚至是多个属性),您可以相应地更改IEqualityComparer。
答案 1 :(得分:0)
你可以用linq:
来做{{1}}