gpt4 book ai didi

c# - 如何使用 ToList() 打印多个列表项?

转载 作者:行者123 更新时间:2023-11-30 19:35:19 26 4
gpt4 key购买 nike

在从列表中选择字段后尝试打印列表中的项目时,我收到一条错误消息“无法从列表转换为项目”。有些查询有效,但少数查询(如下列查询)需要不同的 print void。我希望它能在没有多个打印空白的情况下工作。

我已经尝试将 foreach 循环直接放在查询下,但它找不到要打印的正确项目。

 List<Item> items = new List<Item>();//create list

items.Add(new Item()
{

ItemGroup = "Electric",
ItemDescription = "Electric Sander",
Quantity = 7,
UnitPrice = 59.98f,
});//add list item

var totalValue = items
.Select(x => (
x.ItemDescription,
x.Quantity,
x.UnitPrice,
x.Price = TotalValue((int)x.Quantity, (float)x.UnitPrice)
))
.OrderBy(x => x.Quantity)
.ToList();//create new list for question 1

PrintItems(totalValue);//print item (throwing error "can't
//convert list to item"

static void PrintItems(List<Item> items)//print void
{
foreach (var Item in items)
{
Console.WriteLine("" + Item);
}
}

最佳答案

您正在使用 C# 7 功能通过 LINQ 创建元组 Select ,这意味着您不再拥有 List<Item>类型,但是 List<yourTupleType> .

如果这就是您要在 Select 中计算的全部内容,那么为什么不直接移动 TotalValueItem

public class Item
{
public string ItemGroup { get; set; }
public string ItemDescription { get; set; }
public int Quantity { get; set; }
public float UnitPrice { get; set; }

public float Price
{
get
{
// your TotalValue logic since you already have quantity and unit Price
// something like
return Quantity * UnitPrice;
}
}
}

然后您只需订购您的收藏并传递给 PrintItems 方法即可。

如果你想要 TotalValue 的另一种选择外面的方法Item class - 不创建新对象,只是重新计算每个项目的价格。

items.ForEach(i => i.Price = TotalValue((int)x.Quantity, (float)x.UnitPrice));
PrintItems(items.OrderBy(i => i.Quantity).ToList());

关于c# - 如何使用 ToList() 打印多个列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58457055/

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