【发布时间】:2015-05-13 10:21:40
【问题描述】:
我是 linq 新手,我真的很难从第二个表中不存在记录的两个列表中获取结果。
我两个班……
-
cfiles
- 年份
- 会话
- 中心
- fileNameRaw
-
cfileRecs -Id
- 文件名
cfiles,包含存储库中的所有pdf文件,其中cfilesRecs包含每个pdf文件的数据库条目。
这两个类都显示为 List 和 List,我想返回一个列表,其中仅包含使用 linq 在 cfilesRecs 中找不到的文件。
这是使用的代码,尽管您可能看到 linq 语法是错误的。
public static void Main(string[] args)
{
List<cfileRecs> dbScanRecords = dbRecords(); // Contains db records for objects
List<cfiles> awsScanObjects; // Contains objects from aws
using (client = new AmazonS3Client(Amazon.RegionEndpoint.EUWest1))
{
Console.WriteLine("Listing objects stored in a bucket");
awsScanObjects = ListingObjects();
}
List<cfiles> abc = from d in dbScanRecords join aws in awsScanObjects on d.fileName == aws.fileNameRaw
}
示例答案主要涉及与相同类型的列表进行比较 - 而不是将两个不同的列表连接到一个共同的属性值上。
感谢大家提供的示例,但它们似乎没有产生正确的结果我创建了一个 dotnetfiddle https://dotnetfiddle.net/MW6gXF 来说明问题。结果返回 6 个项目,我应该只得到 3 个。
【问题讨论】:
-
您想要丢失和冗余的记录吗? IE。左加入还是完全加入?
-
我只需要返回 awsScanObjects 中不在 dbScanRecords 中的文件名列表。