获取BindlingList中添加的最后一项

时间:2012-06-06 13:44:58

标签: c#

我有一个BindingList变量,我需要获取添加到它的最后一项。以下代码有效,但我想知道是否有更好的方法或我缺少的东西:

WorkoutScheduleList[WorkoutScheduleList.IndexOf(WorkoutScheduleList[(WorkoutScheduleList.Count - 1)])].WorkoutScheduleID);

这不是最容易阅读的,但它基本上需要列表的计数并从中减去1,并使用它来获取IndexOf方法以获取添加到列表中的最后一项。

2 个答案:

答案 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;