gpt4 book ai didi

c# - 如何在 Linq 输出列表中将字节数组转换为图像

转载 作者:行者123 更新时间:2023-11-30 23:29:01 25 4
gpt4 key购买 nike

如何在列表中执行此操作 (user.image = plugins.LoadImage(user.Image))
LoadImage 是以 BitmapImage 形式返回图像的函数

 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 个不同的问题:

  1. 您正在尝试设置 user.image 属性(我不知道您的 User 中是否有任何名为 image 的属性类):你不能对匿名对象构造函数进行赋值。相反,就像我的示例或其他答案示例一样,您应该在匿名对象初始值设定项中声明一个 image 属性。

new { user.image = plugins.LoadImage(user.Image) }

应该变成

new { image = plugins.LoadImage(user.Image) }

  1. 您不能将所有 C# 代码执行到 linq2sql(也不是 EntityFramework)中,只允许使用少数方法,例如 Convert.ToInt32().ToString()

有关您可以执行 到 linq2sql 查询的代码的更多信息,请查看 here ,否则为 EntityFramework here

关于c# - 如何在 Linq 输出列表中将字节数组转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com