gpt4 book ai didi

c# - 使用 linq 查询和 lambda 表达式选择多列

转载 作者:可可西里 更新时间:2023-11-01 08:00:27 24 4
gpt4 key购买 nike

我是 C# ASP.NET 的新手,正在开发我的第一个应用程序。

我正在尝试创建一个返回数组的 linq 语句。

我有一张产品表。我希望能够为状态 == 1 的每个产品选择名称、ID 和价格。

我正在努力寻找一种方法来做到这一点。我只能退回单个项目/列。我一直坚持这种方式很长时间。

这是我目前所拥有的:

try
{
using (UserDataDataContext db = new UserDataDataContext())
{
return db.mrobProducts.Select(x => x.Name).OrderBy(x => x).ToArray();
}
}

如果您查看下面的屏幕截图,您会发现我有 2 个错误,Select = Type 对象不能从它的用法中引用ToArray = 无法将符号解析为数组

enter image description here

最佳答案

不确定你的表结构是什么样的,但请看下面。

public NamePriceModel[] AllProducts()
{
try
{
using (UserDataDataContext db = new UserDataDataContext())
{
return db.mrobProducts
.Where(x => x.Status == 1)
.Select(x => new NamePriceModel {
Name = x.Name,
Id = x.Id,
Price = x.Price
})
.OrderBy(x => x.Id)
.ToArray();
}
}
catch
{
return null;
}
}

这将返回一个匿名类型的数组,其中包含您需要的成员。

更新:

创建一个新类。

public class NamePriceModel 
{
public string Name {get; set;}
public decimal? Price {get; set;}
public int Id {get; set;}
}

我已经修改了上面的查询以返回它,您应该将您的方法从返回 string[] 更改为返回 NamePriceModel[]

关于c# - 使用 linq 查询和 lambda 表达式选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25230829/

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