首页 > 解决方案 > LInq 查询返回值特定字段

问题描述

我有 2 个表如下:

猫桌

狗桌

因此,我想写一个查询,如果在 DogTable 表中“<strong>CatCode”字段中的值与 CatTable.CatCode 和字段“相同”,则返回表CatTable PLUS 存在 所有数据的列表<strong>NameCode”为空,则应在“<strong>DogTable.CatCode”字段中返回值“ false

例子

var query = from c in CatTable 
            from d in DogTable
            where c.CatCode == d.CatCode 
            select new { c.CatCode, c.CatName, d.CatCode }

你对此有什么建议吗?

标签: c#.netlinq

解决方案


一个简单的版本是使用Any返回你想要在最后一个字段上的逻辑的布尔值

var query = CatTable.Select(ct => new 
{ 
    CatCode = ct.CatCode, 
    CatName = ct.CatName, 
    DogCatCode = !DogTable.Any(dt => dt.CatCode == ct.CatCode && dt.NameCode == "")
});

推荐阅读