我正在将 POCO 映射到模型中,代码如下所示。
// NOT NEEDED var noneRequiredUserDocuments = new List<NoneRequiredUserDocument>();
//var docs = studentDocuments.Where(x => x.RequiredUserDocumentId == null); // NOT NEEDED .ToList();
//var noneRequiredUserDocuments = docs.Select(x => new NoneRequiredUserDocument
// You can chain LINQ methods (i.e. Where and Select)
var noneRequiredUserDocuments = studentDocuments
.Where(x => x.RequiredUserDocumentId == null)
.Select(x => new NoneRequiredUserDocument
{
StudentDocument = x,
Src = _storageService.GetFileUrl(x.FileName),
ThumbnailImageUrl = ImageHelper.ThumbnailImageUrl(Src, 75)
}).ToList();
我的问题是在这一行:
ThumbnailImageUrl = ImageHelper.ThumbnailImageUrl(Src, 75)
Src
在上下文中不存在。
有没有办法让我在 select 中声明一个我可以在 LINQ select 中重用的变量?
而且我不想调用 _storageService.GetFileUrl
两次。
最佳答案
您可以像这样在 Select
中声明一个变量:-
noneRequiredUserDocuments = docs.Select(x =>
{
var src= _storageService.GetFileUrl(x.FileName);
return new NoneRequiredUserDocument
{
StudentDocument = x,
Src = src,
ThumbnailImageUrl = ImageHelper.ThumbnailImageUrl(src, 75);
};
}).ToList();
在查询语法
中这样做等同于:-
from x in docs
let src= _storageService.GetFileUrl(x.FileName)
select and so on..
关于c# - 在 LINQ select(x => new,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29251075/