我有以下List<int>
集合,我需要在集合中找到最高整数。它可以有任意数量的整数,我可以多次使用相同的整数值。
List<int> MyList = new List<int> { 3, 4, 6, 7, 9, 3, 4, 5, 5 };
用于查找最高整数的最简单算法是什么?我正在使用C#和.NET 3.5框架。
答案 0 :(得分:69)
答案 1 :(得分:9)
如果您需要经常检索最大值,您可能会考虑创建自己的列表类(或从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
}
或者,您可以直接从List派生并覆盖Add和Remove方法(基本上所有修改列表项的方法)并相应地更新缓存。
如果这种方法真的有益,取决于您的情况。如果你有一个非常大的列表很少更新,你需要经常检索最大值。否则,请选择已经建议的解决方案,因为它们更简单。
答案 2 :(得分:6)
答案 3 :(得分:1)