.NET列出最佳方法

top*_*ard 7 .net c# collections list

我有一个列表,在下面声明,在开始时我将列表项默认为{-1, - }.请注意,在整个计划中,列表大小固定为2.

List<int> list = new List<int>(new int[] {-1, -1});
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我需要覆盖列表中的两个值,那么最好的方法是什么.

int x = GetXValue();
int y = GetYValue();
Run Code Online (Sandbox Code Playgroud)

方法1:

list = new List<int>(new int[] {x, y});
Run Code Online (Sandbox Code Playgroud)

方法2:

list[0] = x;
list[1] = y;
Run Code Online (Sandbox Code Playgroud)

什么是更好的方法?使用第二种方法,即使我确定最初设置了2个值,但我可能会遇到Argument index out of range异常风险.但是第一种方法可能会占用更多内存(如果我错了,请纠正我!)因为我每次都会创建一个新列表.

是否有更简单和/或更好的解决方案

Jul*_*iet 12

或者是否有更简单,更好的解决方案?

是.由于列表具有固定大小,因此请使用System.Drawing.Point等真实对象:

Point p = new Point(1, -1);
p = new Point(5, 10);
Console.WriteLine("X = {0}, Y = {1}", p.X, p.Y);
Run Code Online (Sandbox Code Playgroud)

  • +1:使用(动态大小)列表会为类型创建歧义 - 现在必须依赖注释来指示预期用法.如果不需要CLR类型,则调用自定义结构或对象. (2认同)