如何在 Linq 输出列表中将字节数组转换为图像
本文关键字:字节数 字节 数组 转换 图像 Linq 输出 列表 | 更新日期: 2023-09-27 18:36:36
如何在列表中执行此操作(user.image = plugins。加载图像(用户。图像))
加载图像是以位图图像的形式返回图像的功能
var query = (
from user in chatDBContext.tbl_User
select new
{
user.FirstName, user.LastName, user.Gender, user.Email,
user.DoB, user.Address, user.City, user.State,user.Country,
user.Quote, user.username, (user.image = plugins.LoadImage(user.Image))
}
).ToList();
考虑到plugins.LoadImage(user.Image))
不能在linq2sql(也不是EntityFramework)上下文中执行。
所以:首先执行查询,在内存中获取对象(例如,您可以通过调用.ToList()
或.ToArray()
来执行此操作),然后检索图像。
// database oriented query
var query = from user in chatDBContext.tbl_User
select user;
// take objects in memory THEN retrieve images
var objects = query.ToList().Select(user => new
{
user.FirstName, user.LastName, user.Gender, user.Email,
user.DoB, user.Address, user.City, user.State,
user.Quote, user.username, image = plugins.LoadImage(user.Image)
});
请考虑您可以避免重复所有字段user
只需选择整个对象而不是所有单个属性:
var objects = query.ToList().Select(user => new
{
user, image = plugins.LoadImage(user.Image))
});
用法:
foreach (var obj in objects)
{
Console.WriteLine(obj.user.FirstName);
Console.WriteLine(obj.user.LastName);
// and so on all user properties
Console.WriteLine(obj.image.Height); // just example
}
编辑(澄清)
在您的源代码中,有 2 个不同的问题:
- 您正在尝试设置
user.image
属性(无论如何,我不知道您的User
类中是否有名为image
的属性):您无法在 anonymus 对象构造函数中赋值。相反,就像我的示例或其他答案示例一样,您应该在匿名对象初始值设定项中声明image
属性权限。
new { user.image = plugins.LoadImage(user.Image) }
应该成为
new { image = plugins.LoadImage(user.Image) }
- 你不能将所有 C# 代码执行到 linq2sql(也不是 EntityFramework)中,只允许使用少数方法,如
Convert.ToInt32()
、.ToString()
等。
有关可以在 linq2sql 查询中执行的代码的详细信息,请查看此处,否则,对于此处的实体框架,请参阅此处
var query = (from user in chatDBContext.tbl_User
select new
{
user.FirstName, user.LastName, user.Gender, user.Email,
user.DoB, user.Address, user.City, user.State,user.Country,
user.Quote, user.username, user.image = user.Image
}
).ToList()
.Select(c => new {
FirstName = c.FirstName, LastName = c.LastName, Gender = c.Gender, Email = c.Email,
DoB = c.DoB, Address = c.Address, City = c.City, State = c.State, Country = c.Country,
Quote = c.Quote, username = c.username, image = plugins.LoadImage(c.image)
}).ToList();