我有一個里面有集合類的類
public class SearchResult {
public int Id { get; set; }
public int Total { get; set; }
public IEnumerable<Book> Books { get; set; }
}
public class Book {
public int BookId { get; set; }
public string BookName { get; set; }
public string Publisher { get; set; }
public string ISBNCode { get; set; }
public IList<catagory> Catagories { get; set; }
}
我有一個問題,如果我創建具有相同結構的 SearchResult 的另一個物件,并且我想將 SearchResult 復制到 SearchResultClone,其中 Books 內僅復制 BookId 和 BookName 保持為空。就像下面一樣
{
"Id": 0,
"Total": 3,
"Books": [
{
"BookId": 1,
"BookName": "Book A",
"Publisher": "",
"ISBNCode": "",
"Catagories": []
},
{
"BookId": 2,
"BookName": "Book B",
"Publisher": "",
"ISBNCode": "",
"Catagories": []
},
{
"BookId": 3,
"BookName": "Book C",
"Publisher": "",
"ISBNCode": "",
"Catagories": []
}
]
}
事件原始結果具有 Publisher、ISBNCode ..etc 的值 如何在 LINQ 中執行?
我的第二個問題是,如果我想像上述物件一樣做出流利的斷言
var result = await sut.search(query);
result.Should().BeEquivalentTo ({the SearchResultClone })
如何撰寫這個流暢的斷言?
uj5u.com熱心網友回復:
您需要基于舊實體創建類的新實體:
var ans = result.Select(sr => new SearchResult {
Id = sr.Id,
Total = sr.Total,
Books = sr.Books.Select(b => new Book { BookId = b.BookId, BookName = b.BookName }).ToList()
}).ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438275.html
上一篇:序列在linq中不包含元素?
