【发布时间】:2012-07-25 06:06:27
【问题描述】:
Lists 的 .Last() 方法只返回一个值。我希望能够做这样的事情。
List<int> a = new List<int> { 1, 2, 3 };
a.Last() = 4;
这是我编写扩展方法的尝试(它不会编译)
public unsafe static T* mylast<T>(this List<T> a)
{
return &a[a.Count - 1];
}
我想做的事可能吗?
编辑:
这是我想要使用它的示例。
shapes.last.links.last.points.last = cursor; //what I want the code to look like
//how I had to write it.
shapes[shapes.Count - 1].links[shapes[shapes.Count - 1].links.Count - 1].points[shapes[shapes.Count - 1].links[shapes[shapes.Count - 1].links.Count - 1].points.Count-1] = cursor;
这就是为什么这样做
shapes[shapes.Count-1]
并不是真正的解决方案。
【问题讨论】:
-
为什么要写这种方法?
-
看起来他想替换最后一个元素
-
您是说您想要一种方法将列表中的最后一项设置为右侧指定的值吗?
-
a.Add(4) 还不够吗?或者你想改变最后一个元素?
-
如果是这样,只需制作一个新版本的
Last,它采用T类型的参数并在方法中设置其自身的值。
标签: c# arraylist extension-methods