使用 LINQ 从不同类获取唯一列表
本文关键字:获取 唯一 列表 同类 LINQ 使用 | 更新日期: 2023-09-27 18:33:57
我有 2 个具有不同属性的类
ClassA
int Id
int Name
int Status
ClassB
int ClassAId
string Bprop1
string Bprop2
string Bprop3
...
我有 A 类列表和 B 类列表,我想获得带有条件的 A 类值的唯一列表
列出存在 ClassA.Id 的位置,并在属性 ClassAId 上列出
例:
// given
List<ClassA> {{1,"a"},{2,"b"},{3,"c"},{4,"d"}} etc
Lisst<ClassB> {{1,"aaa","ccc","aasdaf"},{3,"aaa","ccc","aasdaf"}}
// expected result
List<ClassA> {{1,"a"},{3,"c"}}
如何对相同的内容应用 LINQ 查询?
这应该给你预期的输出:-
List<ClassA> resultClassA = classAObj.Where(a => classBObj.Any(b => b.ClassAId == a.Id))
.ToList();
以下是您要查找的内容:
List<ClassA> objA;
List<ClassB> objB;
List<ClassA> result = objA.Where(x => objB.Select(y => y.ClassAId).Contains(x.Id));
不要忘记定义您的objA
并使用数据进行objB
。
如果你在objA
中有双重值,你应该在最后使用.Distinct()
。