我有一个BindingList变量,我需要获取添加到它的最后一项。以下代码有效,但我想知道是否有更好的方法或我缺少的东西:
WorkoutScheduleList[WorkoutScheduleList.IndexOf(WorkoutScheduleList[(WorkoutScheduleList.Count - 1)])].WorkoutScheduleID);
这不是最容易阅读的,但它基本上需要列表的计数并从中减去1,并使用它来获取IndexOf方法以获取添加到列表中的最后一项。
答案 0 :(得分:2)
您可以处理绑定列表的ListChanged事件,并保留已添加项目的引用。
示例:
class Program
{
static object last_item;
static void Main(string[] args)
{
BindingList<object> WorkoutScheduleList = new BindingList<object>();
WorkoutScheduleList.ListChanged += (s, e) => {
if (e.ListChangedType == ListChangedType.ItemAdded)
last_item = WorkoutScheduleList[e.NewIndex];
};
WorkoutScheduleList.Add("Foo");
WorkoutScheduleList.Add("Bar");
WorkoutScheduleList.Insert(1, "FooBar");
//prints FooBar
Console.WriteLine(String.Format("last item added: {0}", last_item));
}
}
答案 1 :(得分:0)
var lastItem = WorkoutScheduleList[WorkoutScheduleList.Count - 1].WorkoutScheduleID;
或使用LinQ
var lastLinqItem = WorkoutScheduleList.Last().WorkoutScheduleID;