我有2个具有不同属性的类
CREATE FUNCTION IsDuplicate(@col varchar(50))
RETURNS BIT
AS
BEGIN
IF CHARINDEX('KAT', @col) = 1 AND (SELECT COUNT(*) FROM [Catalog] WHERE [Cat_Catalog] = @col) > 1
return 1;
return 0;
END;
GO
ALTER TABLE [Catalog]
ADD CONSTRAINT chkForDuplicates CHECK (dbo.IsDuplicate([Cat_Catalog]) = 0)
GO
我有ClassA列表和ClassB列表,我希望得到一个具有条件的ClassA值的唯一列表
列出ClassA.Id与属性ClassAId上的List一起出现的位置
示例:
ClassA
int Id
int Name
int Status
ClassB
int ClassAId
string Bprop1
string Bprop2
string Bprop3
...
如何为同一个应用LINQ查询?
答案 0 :(得分:3)
这应该给你预期的输出: -
List<ClassA> resultClassA = classAObj.Where(a => classBObj.Any(b => b.ClassAId == a.Id))
.ToList();
答案 1 :(得分:2)
以下是您正在寻找的内容:
List<ClassA> objA;
List<ClassB> objB;
List<ClassA> result = objA.Where(x => objB.Select(y => y.ClassAId).Contains(x.Id));
不要忘记用数据定义objA
和objB
。
如果您在objA
中有一个贬义价值,那么最后应该使用.Distinct()
。