gpt4 book ai didi

c# - LINQ,合并具有相似值的项目

转载 作者:太空宇宙 更新时间:2023-11-03 11:43:17 25 4
gpt4 key购买 nike

假设我有一个这样的集合..

var list = new List<Item>
{
new Item
{
Name = "Software",
Price = 100
},
new Item
{
Name = "Software",
Price = 200
},
new Item
{
Name = "Hardware",
Price = 100
}
};

并且“名称”不会为人所知,我想编写一个 LINQ 查询,该查询将返回具有匹配名称的所有内容的列表。我不能使用“选择”,因为名称在设计时是未知的。

有什么想法吗?

最佳答案

我不完全确定您是要过滤结果还是对结果进行分组。

如果要过滤,可以用Where使用运行时提供的名称:

string nameToFind = GetTheNameToFind(); // Can come from user, config, etc
var matches = list.Where(item => item.Name == nameToFind);

如果您想按所有名称分组(即:有 2 个软件 + 1 个硬件元素),您可以使用 Enumerable.GroupBy :

var groups = list.GroupBy(item => item.Name);

foreach(var group in groups)
{
Console.WriteLine("Group {0}:", group.Key);
foreach(var item in group)
Console.WriteLine(" Item: {0} - {1}", item.Name, item.Price);
}

关于c# - LINQ,合并具有相似值的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4081664/

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