gpt4 book ai didi

c# - 根据属性的最小值从集合中查找项目

转载 作者:行者123 更新时间:2023-11-30 21:06:07 25 4
gpt4 key购买 nike

我定义了以下对象:

public class MyGroup
{
public MyItem[] Items;
}

public class MyItem
{
public int Val;
}

假设我有一个 List 列表,其中每个 MyGroup 对象包含不同数量的 MyItems;它又包含 Val 的不同值。

如何在所有 MyGroup 对象中找到包含最低 Val 的 MyGroup 对象子集。

例如:如果我用以下值定义列表

  • MyGroup1 包含以下每个值的 MyItem:1、5 和7
  • MyGroup2 包含以下每个值的 MyItem:3 和,
    8
  • MyGroup3 包含以下每个值的 MyItem:2、4、5 和 7

然后返回的值将是 MyGroup1(作为单个项目列表),因为它包含值 1,它是所有值中最低的。

但是,如果有多个值具有最低值,例如:

  • MyGroup1 包含以下每个值的 MyItem:1、5 和 7
  • MyGroup2 包含以下每个值的 MyItem:3 和 8
  • MyGroup3 包含以下每个值的 MyItem:1、4、5 和 7

然后它将在列表中返回 MyGroup1MyGroup3

提前致谢。

最佳答案

int lowestValue = groups.SelectMany(group => group.Items)
.Min(item => item.Val);

IEnumerable<MyGroup> result = groups.Where(group =>
group.Items.Select(item => item.Val).Contains(lowestValue));

这将是一个两次通过的算法。如果您有适当的动机,您可以通过在搜索该最小值的同时跟踪所有包含该最小值的项目来一次性完成。

关于c# - 根据属性的最小值从集合中查找项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11365527/

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