我有以下List<int>集合,我需要在集合中找到最高整数.它可以有任意数量的整数,我可以多次使用相同的整数值.
List<int> MyList = new List<int> { 3, 4, 6, 7, 9, 3, 4, 5, 5 };
Run Code Online (Sandbox Code Playgroud)
用于查找最高整数的最简单算法是什么?我正在使用C#和.NET 3.5框架.
Ree*_*sey 69
你可以这样做:
int max = MyList.Max();
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Enumerable.Max.
如果需要经常检索最大值,可以考虑创建自己的列表类(或从List派生),它将最大项保留在缓存中.这样的类看起来像这样:
public class MaxList<T> : IList<T>, ICollection<T>, IEnumerable<T>
{
T Maximum { get; set; }
List<T> _list;
public T this[int index] { get; set; }
public void Add(T item)
{
if (item > this.Maximum)
{
this.Maximum = item;
}
_list.Add(item);
}
// ... IEnumerable<T>, ICollection<T> and IList<T> members
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以直接从List派生并覆盖Add和Remove方法(基本上所有修改列表项的方法)并相应地更新缓存.
如果这种方法真的有益,取决于您的方案.如果你有一个非常大的列表很少更新,你需要经常检索最大值.否则,请选择已建议的解决方案,因为它们更简单.
| 归档时间: |
|
| 查看次数: |
32251 次 |
| 最近记录: |