我有兩個名為LastFiles和的物件DbObj。當我提取資料時,我有 2 個由這些組成的物件串列。我創建了一個這樣的場景。
public class LastFiles
{
public int Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public string Translator { get; set; }
public string Supervisor { get; set; }
public string Type { get; set; }
public string FileName { get; set; }
public string ModifiedDate { get; set; }
}
public class DbObj
{
public int Id { get; set; }
public int WorkId { get; set; }
public string Type { get; set; }
public int TypeId { get; set; }
}
var lastFiles = new List<LastFiles> {
new LastFiles { Id = 1, Title = "Title 1", Author = "Author 1", Type = "book", FileName = "file-name-1.pdf" },
new LastFiles { Id = 2, Title = "Title 2", Author = "Author 2", Type = "book", FileName = "file-name-2.pdf" },
new LastFiles { Id = 3, Title = "Title 3", Author = "Author 3", Type = "article", FileName = "file-name-3.pdf" },
new LastFiles { Id = 4, Title = "Title 4", Author = "Author 4", Type = "article", FileName = "file-name-4.pdf" },
new LastFiles { Id = 5, Title = "Title 5", Author = "Author 5", Supervisor = "Supervisor 1", Type = "thesis", FileName = "file-name-5.pdf" },
new LastFiles { Id = 6, Title = "Title 6", Author = "Author 6", Supervisor = "Supervisor 2", Type = "thesis", FileName = "file-name-6.pdf" }
};
var dbObj = new List<DbObj> {
new DbObj { Id = 1, WorkId = 5, Type = "book", TypeId = 1 },
new DbObj { Id = 2, WorkId = 5, Type = "book", TypeId = 2 },
new DbObj { Id = 3, WorkId = 5, Type = "thesis", TypeId = 5 },
new DbObj { Id = 4, WorkId = 5, Type = "thesis", TypeId = 6 },
new DbObj { Id = 5, WorkId = 278, Type = "article", TypeId = 689 }
};
如果我必須經歷這個場景;如何從lastFiles該LastFiles.Type值中獲取與該值相同且與該DbObj.Type值LastFiles.Id相同的專案DbObj.TypeId?
uj5u.com熱心網友回復:
您可以使用匿名物件加入兩個集合,如下所示:
var result = (from lf in lastFiles
join db in dbObj on new { lf.Type, TypeId = lf.Id}
equals new { db.Type, db.TypeId}
select lf).ToList();
編輯
連接的 Lambda 版本:
var result2 = lastFiles.Join(dbObj,lf=> new {lf.Type,TypeId = lf.Id},db=>new { db.Type,db.TypeId},(lf,db)=> lf ).ToArray();
小提琴
請注意,屬性名稱和型別應匹配。您可能需要在實際代碼中重命名和強制轉換。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/510673.html
標籤:C#林克
