使用LINQ获取列表中的所有DISTINCT项目

本文关键字:DISTINCT 项目 LINQ 获取 列表 使用 | 更新日期: 2023-09-27 18:26:12

我是LINQ的新手,我有下面的脚本,如果条件满足,它会返回表中的第一个项,但是,我希望获得所有不同的项,而不仅仅是第一个。我在这个平台上相对较新。

public LG GetLG (int WID)
{
    lock (locker) {
      return database.Table<LG> ().FirstOrDefault (x => x.id == WID);
    }
}

使用LINQ获取列表中的所有DISTINCT项目

您想要的是.Distinct()吗?

return database.Table<LG>.Where(x => x.id == WID).Distinct()

以下链接包含有用的材料:

示例:

List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 };
IEnumerable<int> distinctAges = ages.Distinct();
Console.WriteLine("Distinct ages:");
foreach (int age in distinctAges)
{
  Console.WriteLine(age);
}

此代码产生以下输出:

不同年龄:
21
46
55
17

LG对象中,您需要重写EqualsGetHashCode方法
完成后,可以在LINQ 中使用Distinct()函数

database.Table<LG>.Where(x => x.id == WID).Distinct()