gpt4 book ai didi

c# - 如何使 Distinct ... 更加与众不同?

转载 作者:行者123 更新时间:2023-12-02 05:04:06 24 4
gpt4 key购买 nike

好吧,除了愚蠢的标题。我有一个查询拉回不同的值,但它包括 departmentID 列而不是 departmentName 列作为不同的。这让我有时会导致重复。

ViewBag.DepartmentList = docs.Select(m => new SelectListItem
{
Value = SqlFunctions.StringConvert((double)m.departmentID).Trim(),
Text = m.departmentName
})
.Distinct(); // Fill the viewbag with a unique list of 'Department's from the table.

这是文档里面的内容:

Image enter image description here

如果有帮助的话,departmentID 是一个主键。所以 departmentID 1 将始终指向相同的名称,依此类推。

最佳答案

你可以使用IEqualityComparer

class MyComparer<T> : IEqualityComparer<T> where T : SelectListItem
{
public bool Equals(T x, T y)
{
return x.Value == y.Value ;
}

public int GetHashCode(T obj)
{
return obj.Id.GetHashCode();
}
}

然后是你的代码

ViewBag.DepartmentList = docs.Select(m => new SelectListItem
{
Value = SqlFunctions.StringConvert((double)m.departmentID).Trim(),
Text = m.departmentName
})
.Distinct(new MyComparer<SelectListItem>()).ToList();

关于c# - 如何使 Distinct ... 更加与众不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16547950/

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