c# 如何获取列表中某个属性最大或最小的元素?

比如说我有个
class Actor
{
int x;
int y;
}
然后我又有了个List<Actor>
我现在想找到这个列表中x最小的值,但是不想用for和foreach,性能消耗太大了,Min和max返回的又是数字,没法拿到x最小的Actor

各位大佬有办法吗,查了半天找不到!!!

C# 中有多种方法来获取列表中某个属性最大或最小的元素,其中一种是使用 Linq 中的 OrderBy 和 First 或 OrderByDescending 和 First 。
举个例子,获取列表中 x 最小的 Actor:
List<Actor> actors = new List<Actor>();// Add actors to the listActor minActor = actors.OrderBy(a => a.x).First();
获取列表中 x 最大的 Actor:Actor maxActor = actors.OrderByDescending(a => a.x).First();

OrderBy和OrderByDescending 方法会对列表进行排序,而First() 则会返回第一个元素, 即最大或最小的元素。

需要注意的是,这种方法会对列表进行排序,如果列表很大的话,性能会有损耗。
此外,还有其他的方法比如聚合操作,所以可能会有更优的方案,取决于具体的使用场景
温馨提示:内容为网友见解,仅供参考
第1个回答  2023-01-11
.FillRect(rect, color.RGBA{R: 255, G: 0, B: 0, A: 255})
if err := c.SavePNG(fileName); err != nil {
log.Fatal(err)
}
}
func main() {
img := image.NewRGBA(image.Rect(0, 0, 100, 100))
drawRectange(img, "rect1.png")
}

c# 如何获取列表中某个属性最大或最小的元素?
C# 中有多种方法来获取列表中某个属性最大或最小的元素,其中一种是使用 Linq 中的 OrderBy 和 First 或 OrderByDescending 和 First 。举个例子,获取列表中 x 最小的 Actor:List<Actor> actors = new List<Actor>();\/\/ Add actors to the listActor minActor = actors.OrderBy(a => a...

如何用C#获取整数中的最大值?
在这段代码中,首先使用 input 函数从键盘输入整数个数 n,如果 n 小于 3,则要求用户重新输入,直到 n 大于等于 3 为止。接着,使用 for 循环输入 n 个整数,并将这些数存储到列表 nums 中。最后,使用 max 函数获取列表中的最大值,并输出该最大值。

c#中如何获取下拉列表中选择的参数值
DropDownList控件有个属性是SelectedValue,里面的值是当前选中那项的Value值,通常情况下,如果没有单独设置ListItem.Value属性的话,Value和Text是相同的,通过DropDownList.SelectedValue 来获得DropDownList当前选中项

c# datagridview 如何选中行,以及怎么获取选中行的数据
1、首先需要在事件列表中找到DataGridView对象的CellClick事件。2、然后在此事件中,会有DataGridCiewCellEventArgs事件变量e。3、此时便能利用DataGridCiewCellEventArgs事件变量e的RowIndex属性获得行索引,但是我们需要加1。4、并且还能通过CurrentCellAddress属性组的X和Y坐标,也是能够获得行列索引。

求问C#如何获取下拉框ValueMember的值
为下拉列表的每一个项设置两个属性DisplayMember\/\/显示的文本ValueMember \/\/绑定的值当显示的文本时某一个值时,ComboBox.ValueMember就是其隐藏的值了

C#中如何获取对象实例大小?
C#提供了两个获取大小的方法:1.使用sizeof运算符。但sizeof只有对int,byte等预定义值类型有效。2.使用System.Runtime.InteropServices.Marshal.SizeOf静态方法。此方法对任何值类型的实例有效。除此之外,引用类型的内存是分配在堆上面的,不管是C,C++还是C#,好像都只能在堆上面实例化对象,删除对象。尤其是C#,连实例...

c#中List.Add()的疑问?
你用的这个方法是List.IndexOf()你自己看看这三行代码的结果如何 List<int> root = new List<int>();root.Add(1);Debug.Log("=" + root[0]);Debug.Log("=" + root.IndexOf(0));Debug.Log("=" + root.IndexOf(2));

C#List的某个元素做DataGridView的数据源
DataSource数据源对象通常是要实现IList接口的集合对象,A[0],是集合中的一个对象,一个对象字段属性再多也不是一个集合,自然不能作为数据源绑定到表格,你可以把列表过滤到只有一条记录,然后将其作为数据源 DataSource=A;

在C#中如何获取下拉列表框的值
在C#中获取下拉列表框的值的代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1 { public partial class Form1 : Form { public...

C#中List<T>的作用与用法,求详解 谢谢
属性 --- 名称 说明 Capacity 获取或设置该内部数据结构在不调整大小的情况下能够容纳的元素总数。Count 获取 List<T> 中实际包含的元素数。Item 获取或设置指定索引处的元素。方法 --- 名称 说明 Add 将对象添加到 List<T> 的结尾处。AddRange 将指定集合的元素添加到 List...

相似回答
大家正在搜